在使用MQTT服务器时,一个问题突然出现在我的脑海中,在我的情况下使用Protobuf+Websockets会更好吗?
我正在制作一个即时通讯平台...clientA到服务器到数据库和clientB。
要发送的信息:对话ID和消息。
发布于 2016-10-26 06:02:17
当您在最初的GET请求中包含HTTP头的大小,然后在服务器的UPGRADE请求中启动Websocket连接时,总的网络流量通常比打开MQTT连接并订阅一个主题的流量大几个数量级。
通过网络发送数据使用无线电,这会消耗电池,所以你发送的数据越多,你消耗的电池就越多。使用MQTT,发送和接收的更多数据是您的实际有效负载,而不是与协议关联的额外数据。
虽然随着更多数据的发送/接收,初始握手导致的差异将在更长更稳定的连接中趋于平衡,但对于移动应用程序来说,情况并不总是如此,当它们在蜂窝站点之间移动或在移动数据和WiFi之间切换时,当它们从4G移动到3G时,往往会更频繁地断开网络连接。
Websockets比HTTP长轮询要好得多,但在连接开始时仍然有大量的初始网络命中。
发布于 2016-10-27 06:26:47
带有压缩/协议的MQTT =>最好
MQTT =>很好
HTTP上的Websockets支持压缩/ protobuf => ok
Websockets over HTTP =>等等
只有在客户端使用像JavaScript这样的东西,或者如果你想通过超文本传输协议(例如,更容易穿越防火墙)时才使用Websockets。
https://stackoverflow.com/questions/40249862
复制相似问题