C# MQTT 应用介绍

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。 特点:

1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序的耦合

2、对负载内容屏蔽的消息传输

3、使用TCP/IP提供网络连接

MQTT分为服务端和客户端,服务端Broker,所有设备通讯都需要通过服务端转发,对于编程来说,电脑、手机、lot设备等都作为客户端,下图MQTT的架构图。

笔者以C# 下M2Mqtt.Net测试程序为例介绍控件如何使用

这个M2Mqtt.Net重要属性介绍:

1、brokerHostName:安装Broker服务端计算机的IP地址,上图① 所示

2、brokerPort:服务端Port,默认端口Tcp的1883端口,由于默认,测试程序未做参数传递

3、clientId:客户端Id,上图②所示,唯一ID值通过GUID获取,保证本服务下的每个客户端的ID必须唯一,否则会被后连的客户端踢掉,这个ID还有一个作用就是设置cleanSession为flase时,客户端使用同一clientId重连服务端会收到订阅的离线消息,如过不需要收断线的消息可把cleanSession消息置true

4、主题:上图④所示,非常重要的参数,Mqtt通常控制物联网的设备,一个服务端可带10w个连接,因此就需要维护设备的主题来操作设备,如:/省/市/单位/1 ~/省/市/单位/2 ~/省/市/单位/N格式来进行定义,MQTT的主题还支持通配符,如: /省/市/单位/#  ,这个单位下所有的设备都能收到发布的数据

5、Qos:发布服务质量,如上图⑤所示 ,质量包含以下三种方式

        a、至多一次,即Qos=0,会发生信息丢失,消息发布完全依赖底层TCP/IP网络。

        b、至少一次,即Qos=1,确保消息到达,但消息重复可能会发生。

        c、只有一次,即Qos=2,确保消息到达一次。

由于手法信息均可以设置Qos,可以参考下图得到最终的Qos,对于像缴费类,对于信息敏感的项目就需要设置Qos为2。

但是Qos设置为2会造成网络和服务器额外的消耗,通过下面三张图就能看出Qos的设置不同会造成网络和服务端Borker的额外开销

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>