为什么MQTT比Websockets + protobuf使用更少的电池(或者它没有?)

时间:2016-10-25 21:17:43

标签: tcp websocket mqtt

在使用MQTT服务器的时候,我脑海里浮现出一个问题,在我的案例中使用Protobuf + Websockets会不会更好?

我正在建立一个即时通讯平台... clientA到服务器到数据库和clientB。

将发送的信息:会话ID和消息。

2 个答案:

答案 0 :(得分:0)

当您在初始GET请求中包含HTTP标头的大小,然后向服务器添加UPGRADE请求以启动Websocket连接时,总的网络流量通常比打开MQTT连接和订阅的更多。话题。

通过网络发送数据使用通过电池刻录的无线电,因此发送的数据越多,刻录的电量就越多。使用MQTT,发送和接收的更多数据是您的实际有效负载,而不是与协议相关的额外数据。

虽然初始握手造成的差异会导致更长时间更稳定的连接,因为发送/接收的数据越多,但对于移动应用程序来说情况并非总是如此,因为当移动应用程序从4G移动到更频繁时会更频繁地丢弃网络连接3G在小区站点之间移动或在移动数据和WiFi之间切换时。

Websockets比HTTP长轮询更好,但是在连接开始时仍然存在大的初始网络。

答案 1 :(得分:0)

带压缩的MQTT / protobuf =>最好

MQTT =>好

带有压缩的HTTP上的Websockets / protobuf =>确定

HTTP上的Websockets =>所以

如果在客户端使用JavaScript之类的东西,或者想要通过HTTP(例如,更容易穿越防火墙),则只使用Websockets。