什么是MQTT?
MQTT是一种轻量级消息传递协议,由IBM开发,于1999年首次发布。它使用发布/订阅模式并在设备、服务器和应用程序之间转换消息。最初,MQTT的创建目的是为了将石油管道上的传感器与通信卫星连接起来,重点是最大限度地减少电池使用和带宽消耗。MQTT自诞生以来一直在不断发展。2018年5月发布的5.0版本为MQTT协议带来了重大变化和增强。
在MQTT协议中,连接的设备称为“客户端”,它们与称为“代理”的服务器进行通信。代理处理客户端之间的数据传输任务。
每当客户端(也称为“发布者”)想要分发信息时,它就会发布特定主题。然后,代理将此信息转发给已订阅该主题的任何客户端(称为“订阅者”) 。
发布者不需要有关订阅者数量或位置的数据,订阅者也不需要有关发布者的任何数据。任何客户端都可以充当发布者、订阅者或两者。通常情况下,客户彼此不认识,只知道充当中介的经纪人。这种设置通常称为“发布/订阅模型”。
MQTT协议中的方法
MQTT协议中定义了一些方法(也被称为动作), 来于表示对确定资源所进行操作。 这个资源可以代表预先存在的数据或动态生成数据,这取决于服务器的实现。通常来说,资源指服务器上的文件或输出。
Connect,等待与服务器建立连接
Disconnect,等待MQTT客户端完成所做的工作,并与服务器断开TCP/IP会话
Subscribe,等待完成订阅
UnSubscribe,等待服务器取消客户端的一个或多个topics订阅
Publish,MQTT客户端发送消息请求,发送完成后返回应用程序线程
mqtt协议和http协议区别
MQTT(Message Queuing Telemetry Transport)协议和HTTP(Hypertext Transfer Protocol)协议是两种不同的通信协议,它们在很多方面有着明显的区别,主要包括以下几点:
1. **通信方式**:
- MQTT 是一种发布/订阅(Publish/Subscribe)协议,它基于消息队列的模式,消息的发布者和订阅者是解耦的,消息通过消息代理(Broker 服务器)进行传递。
- HTTP 是一种请求/响应(Request/Response)协议,客户端通过请求消息与服务器通信,服务器收到请求后返回响应消息。
2. **实时性**:
- MQTT 协议支持实时消息传递,具有较低的延迟和节省网络带宽的特点。
- HTTP 协议通常是短连接方式,每次请求需要建立连接、发送请求、收到响应后断开连接,传输效率不如 MQTT。
3. **连接性质**:
- MQTT 支持客户端保持长连接,可以随时发送和接收消息,适合实时性要求高的场景。
- HTTP 是一种短连接协议,每次请求都需要建立连接,适用于间歇性的请求和响应通信。
4. **消息格式**:
- MQTT 的消息格式较轻量,头部信息较小,适合在网络带宽有限的情况下传输小量数据。
- HTTP 的消息格式较重,每次请求的头部信息较多,适合传输较大量的数据和资源。
5. **应用场景**:
- MQTT 更适合物联网设备之间的实时通信,如传感器数据的实时监控和控制。
- HTTP 更适合传统的网页浏览和数据传输,如网页的访问和内容下载等。
MQTT 和 HTTP 在通信方式、实时性、连接性质、消息格式和应用场景等方面有明显的区别,开发人员在选择使用哪种协议时应根据具体需求和应用场景来进行选择。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !