我想为大量设备实施服务。此服务应该能够在服务器和客户端之间发送/接收(小 - 最大1kB)消息,还能在设备和设备之间发送/接收p2p。
目前我正在考虑使用MQTT实现这一目标,因为它似乎是一种轻量级的低流量生成协议。正如本question中所述,XMPP也可能是另一种选择,但我不确定这是否能给我提供所需的性能。
总结我对协议有以下期望:
MQTT对我来说是正确的方法还是我应该更好地看一些替代方案?请记住,我需要创建一个高度可扩展的服务。
答案 0 :(得分:2)
如果您以正确的方式使用它,我认为除了6。之外的所有期望都可以通过MQTT来实现。您应该查看http://www.eclipse.org/paho/和http://mosquitto.org/的OpenSource实现。
由于MQTT具有发布 - 订阅体系结构,其中每条消息都由消息代理(服务器)发送和分发,因此P2P可能是个问题。您可以为两个客户端之间的每个连接使用专用主题,但消息仍然必须通过消息代理。 作为一种解决方法,您可以通过MQTT协商客户端之间的P2P连接,然后将协商的通道与其他协议一起使用。
答案 1 :(得分:1)
正如莱克斯所说,使用MQTT,您拥有所需的所有功能,第6点是使用经纪人实现的。 MQTT的最大缺点是它本身不支持请求/回复模式(如HTTP或AMQP),但完全支持发布/订阅模式。 当然,如果您需要请求/回复,您需要在协议本身之上的层中定义正确的主题和有效负载,以在请求和响应之间创建匹配/关联逻辑。
保罗。