今天小编要和大家分享的是网络,协议相关信息,接下来我将从MQTT与SSE的对比分析,mqtt pub/sub系统这几个方面来介绍。

网络,协议相关技术文章MQTT与SSE的对比分析mqtt pub/sub系统

网络,协议相关技术文章MQTT与SSE的对比分析

构建实时web或移动应用程序比构建标准服务更具挑战性。这是因为您选择的将数据从服务器传递到客户端的协议将对总体体验产生重大影响。

当您需要数据从服务器快速地流向客户机时,需要一个持久连接。您可以使用长轮询(longpolling)、WebSockets、服务器发送事件(SSE)或HTTP2推送来完成此操作。

今天,我们将具体看看MQTT和SSE,看看它们之间的比较。

MQTT和SSE的简要历史

MQTT,即消息队列遥测传输(MessageQueuingTelemetryTransport),是一种发布-订阅(publish-subscribe)消息协议,最早出现于1999年。IBM的andyStanford-Clark和eurotech的ArlenNipper在那一年发布了该协议。

最初,它为沙漠管道段之间的连接提供支持,以便进行主动监测。这是通过将管道连接与卫星网络同步来实现的。

这个想法是创建一种轻量级的机器对机器通信协议,该协议甚至可以在带宽低,连接性无法预测的有限网络上以及低功耗设备上运行。它还合并了不同级别的服务质量(QoS)。

从那时起,MQTT已成为类似应用程序的公认协议,在CPU功率有限、电池限制和不可预测的通信实例之间桥接设备之间的连接。最近,MQTT已成为物联网解决方案的首选协议。

另一方面,SSE(Server-SentEvents)出现的时间要晚得多,在2006年。该协议基于服务器发送的DOM事件,它是Opera9web浏览器引入的。当时,它还是一项试验技术,仅在发生新事件或更新时才将内容从服务器推送到客户机或web浏览器。

首先,客户端使用EventSource接口建立连接。基于JavaScript的API使HTTP流保持打开状态并接收更新,直到最终将其关闭。

这是一个新的EventSource对象的示例,该对象设置为从服务器接收事件:

它们有何不同?

有两种主要的方法来处理数据传递。第一个称为客户端请求,它表示浏览器或应用正在从服务器请求数据。第二种方法称为服务器推送,这是远程服务器主动将数据推送到网站或应用程序。本质上,一个涉及客户端,另一个涉及服务器。

虽然只有两种方法可以进行数据传递,但是可以通过几种方法实现此过程:

1)长轮询或短轮询(客户端pull)

2)WebSockets(服务器推送)

3)服务器发送的事件(服务器推送)