我对这些协议有点陌生,刚刚开始探索像 Apache Apollo 和 RabbitMQ 这样的消息代理。所以我的代理接收来自发布者的 MQTT 消息。我想将其转换为 AMQP(最好)或 STOMP 协议以发送到 Web 服务器。但到目前为止,我一直无法这样做。我查看了 RabbitMQ,并尝试启用 MQTT 插件,但是当我加载它时,我无法启动服务器。我想知道是否有人可以在这里指导我?有可以帮助我的 API 吗?我对 RabbitMQ 很困惑。我已经能够轻松加载其他插件,如 stomp、管理实用程序等。
2 回答
我100%确定这是可行的。我现在正在与 robomq.io 经纪人合作。一个原因可能是有时您的客户端库中的错误会限制您这样做。
您应该注意的另一件事是,在内部,RabbitMQ MQTT 适配器amq.topic
默认映射到交换,因此在您的 STOMP 对等点上,您应该订阅或发送到/topic/yourTopic
;在您的 AMQP 对等点上,将您的队列绑定到amq.topic
交换或发布到该交换。
如果您无法确定您的服务器,只需从 robomq.io 获得免费试用。它可以节省您的时间和金钱。
我使用的开发工具是 robomq.io 代理,Python 中的生产者(AMQP 库:pika,MQTT 库:paho,STOMP 库:stompest),Node.js 中的消费者(库:amqplib)。
希望能帮助到你!
嗯,我不确定这个问题是否应该被删除。但是,如果必须如此,我一般由版主和 stackOverflow 社区自行决定。顺便说一句,我使用 Ubuntu 14.04。
关于 RabbitMQ 代理
所以Mosquitto在后台运行,占用了通常用于 MQTT 的端口 1883。我本可以更改 RabbitMQ 的端口,但决定反对并试图杀死 Mosquitto 进程。但由于某种原因,我不能。目前,我的快速修复是完全删除 Mosquitto,这释放了端口,使 RabbitMQ 能够使用它。
关于协议
我使用Paho和提供的RabbitMQ库来编写简单的程序,这些程序可以通过 RabbitMQ 代理在 AMQP/MQTT 中发布和接收消息。(我的谷歌搜索需要更好!)仍然没有将一个转换为另一个。但这不应该是一个太大的进步。 仍然很高兴知道是否有 API 或可以帮助我以非常简单的方式实现转换的东西。当然,如果没有,我会尽快解决
欢迎任何建议/意见。我对这一切都很陌生,真的可以使用所有经验丰富的专业人士的建议:)