rabbitmq 消息发布与订阅

发布于 2022-09-12 04:18:25 字数 1396 浏览 14 评论 0

客户端(安卓跟IOS)用mqtt协议订阅消息,然后管理后台用amqp来发送消息,但是发现用ampq协议来发送西消息,mqtt端接收不到,如果用mqtt来发送是没有问题的,代码就是用官方的测试代码如下:


    // 发送端代码
    conn, err := amqp.Dial("amqp://guest:guest@:5672/")
    failOnError(err, "Failed to connect to RabbitMQ")
    defer conn.Close()
    ch, err := conn.Channel()
    failOnError(err, "Failed to open a channel")
    defer ch.Close()
    err = ch.ExchangeDeclare(
        "amq.topic", // name
        "topic",     // type
        true,        // durable
        false,       // auto-deleted
        false,       // internal
        false,       // no-wait
        nil,         // arguments
    )
    failOnError(err, "Failed to declare an exchange")
    body := bodyFrom(os.Args)
    routingKey := severityFrom(os.Args)
    fmt.Println(routingKey)
    err = ch.Publish(
        "amq.topic", // exchange
        routingKey,  // routing key
        false,       // mandatory
        false,       // immediate
        amqp.Publishing{
            ContentType: "text/plain",
            Body:        []byte(body),
        })
    failOnError(err, "Failed to publish a message")
    log.Printf(" [x] Sent %s", body)
}
    // 客户端订阅接收代码
    client := connect("sub", host)
    client.Subscribe("/bin/#", 0, func(client mqtt.Client, msg mqtt.Message) {
        fmt.Printf("* [%s] >> %s\n", msg.Topic(), string(msg.Payload()))
    })

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文