【发布时间】:2021-05-17 13:02:30
【问题描述】:
我想开发聊天应用程序并使用 MQTT 和 Web 套接字进行实时通知,客户端的活动状态(主要是 Web 浏览器)。我想知道如何以最佳方式在客户端之间进行通信,以减少 MQTT 的负载并实现顺畅的通信。
例如,如果客户端 A 向客户端 B 发送消息,则选项为
1) 为客户端A和客户端B之间的通信制作单独的主题
如果应用程序中的客户端数量会增加,那么每个用户之间的主题数量会大幅增加,这会给 MQTT 代理带来负担,这看起来不是一个好主意。
2) 根据唯一的客户 ID 发送消息
MQTT 不允许基于客户端 ID 发布消息
3) 为所有客户端创建一个主题进行通信(所有客户端都会订阅该主题,如果消息与其相关,则相关客户端将执行其操作)
很多客户端会收到不需要的消息,并且随着客户端数量的增加,问题也会增加。
如果所有客户端都订阅一个主题,是否可以过滤掉应该接收消息的客户端
制作流畅的聊天应用程序的其他解决方案是什么,以及其他应用程序使用什么解决方案,例如 slack、telegram、whatsapp 等。他们是否也使用 MQTT,如果没有,他们如何实现这一点。
提前致谢
【问题讨论】:
标签: websocket chat mqtt messagebroker