可以使用MQTT来实现请求/响应行为

A.A*_*omi 8 android http mqtt

我们计划使用MQTT将消息从我们的服务器传递到我们决定使用开源服务器mosquitto的Android设备.

在大多数情况下,这就足够了.(发布/订阅)但我们有一种情况,客户端需要发送参数并从服务器获得响应.我知道直接的方法是使用Http(例如Servlets).但我们能否使用MQTT实现这一目标,因为它意味着用户的带宽消耗更低?

ral*_*ght 8

是的,它只需要仔细设计您的主题结构.作为一个非常简单的示例,您可以发布control/<client id>/request和订阅control/<client id>/response


Ada*_*ent 5

我建议您看看RabbitMQ 如何处理 RPC。尽管 AMQP 与 MQTT 不同,但仍有相当多的高级继承。

归根结底,您要么需要能够使用消息头创建具有相关 ID 的临时“回复”队列。或者正如 @ralight 所说,为每个客户端打开两个队列。为每个客户端打开两个队列的问题当然是排序,因此您必须在内部使用相关 ID 和缓冲区和路由(或者如果您的应用程序是同步的,则删除直到找到相关 ID)。


Kar*_*son 5

从 MQTT 版本 5 开始,这是可能的。该规范指定了请求/响应模式。

看看这个:https : //stackoverflow.com/a/59916330/1137669