rabbitmq 消息发布与订阅

客户端(安卓跟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()))
    })
阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题