概述
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的额外开销
最后
以上就是活泼玉米为你收集整理的C# MQTT 应用介绍的全部内容,希望文章能够帮你解决C# MQTT 应用介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复