符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
当客户端断开连接时,发送给相关的订阅者的遗嘱消息。以下情况下会发送 Will Message:
新建网站建设公司创新互联,新建网站设计制作,有大型网站制作公司丰富经验。已为新建上千多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的新建做网站的公司定做!遗嘱消息一般通过在客户端 CONNECT 的时候指定。如下所示,在连接的时候通过调用
MqttConnectOptions
实例的
setWill
方法来设定。任何订阅了下面的主题的客户端都可以收到该遗嘱消息。
//方法1MqttConnectOptions.setWill(MqttTopic topic, byte[] payload, int qos, boolean retained)//方法2MqttConnectOptions.setWill(java.lang.String topic, byte[] payload, int qos, boolean retained)
在客户端 A 进行连接时候,遗嘱消息设定为”offline“,客户端 B 订阅这个遗嘱主题。当 A 异常断开时,客户端 B 会收到这个”offline“的遗嘱消息,从而知道客户端 A 离线了。
Bit | 7 | 6 | 5 | 4 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
User Name Flag | Password Flag | Will Retain | Will QoS | Will Flag | Clean Start | Reserved | |
byte 8 | X | X | X | X | X | X | X |
遗嘱消息在客户端正常调用 disconnect 方法之后并不会被发送。
简而言之,就是客户端预先定义好,在自己异常断开的情况下,所留下的最后遗愿(Last Will),也称之为遗嘱(Testament)。这个遗嘱就是一个由客户端预先定义好的主题和对应消息,附加在CONNECT的可变报文头部中,在客户端连接出现异常的情况下,由服务器主动发布此消息。
当Will Flag位为1时,Will QoS和Will Retain才会被读取,此时消息体中要出现Will Topic和Will Message具体内容,否则Will QoS和Will Retain值会被忽略掉。
当Will Flag位为0时,则Will Qos和Will Retain无效。
下面是一个Will Message的示例:
Sub端clientid=sub预定义遗嘱消息:
mosquitto_sub --will-topic test --will-payload die --will-qos 2 -t topic -i sub -h 192.168.1.1
客户端 clientid=alive 在 192.168.1.1(EMQ服务器) 订阅遗嘱主题
mosquitto_sub -t test -i alive -q 2 -h 192.168.1.1
异常断开Sub端与Server端(EMQ服务器)连接,Pub端收到Will Message 。
这里介绍一下如何将 Retained 消息与Will 消息结合起来进行使用。
A/status
;A/status
发送 “online” 的 Retained 消息,其它客户端订阅主题
A/status
的时候,获取 Retained 消息为 “online” ;A/status
发送”offline“的消息,其它订阅了此主题的客户端会马上收到”offline“消息;如果遗嘱消息被设定了 Retained 的话,这时有新的订阅
A/status
主题的客户端上线的时候,获取到的消息为“offline”。