fanliang11 / surging

Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. support Event-based Asynchronous Pattern and reactive programming ,The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, built-in service governance to ensure reliable RPC communication, the engine contains Diagnostic, link tracking for protocol and middleware calls, and integration SkyWalking Distributed APM
MIT License
3.25k stars 922 forks source link

MQTT 协议支持离线消息推送 #235

Open wlhappy01 opened 5 years ago

wlhappy01 commented 5 years ago

首先感谢作者开源的辛苦付出!!

经测试MQTT协议是一个非常好的东东,但想把MQTT用于离线消息推送中,希望订阅客户端能收到之前未收到的所有离线消息,测试了最新版本还请作者指导

第一种情况:qos=0,WillRetain=true,Topic=/冰箱,发送离线消息三次,但是收到的仅一次且是最后一次离线信息 {"deviceId":"",

"message":{ "Topic":"/冰箱", "Message":"网关遗嘱测333333", "Qos":0, "WillRetain":true } } 第二种情况:qos=1,WillRetain=true,Topic=/冰箱,发送离线消息三次,能收到三次离线消息,但是收到的三次离线消息都是第一次的内容 第一次 {"deviceId":"",

"message":{ "Topic":"/冰箱", "Message":"网关遗嘱测1111", "Qos":1, "WillRetain":true } 第二次 } {"deviceId":"",

"message":{ "Topic":"/冰箱", "Message":"网关遗嘱测2222", "Qos":1, "WillRetain":true } 第三次 } {"deviceId":"",

"message":{ "Topic":"/冰箱", "Message":"网关遗嘱测3333", "Qos":1, "WillRetain":true } } image

第三种情况:qos=2,WillRetain=true,Topic=/冰箱,发送离线消息三次,能收到三次离线消息,但是收到的三次离线消息都是第一次的内容,与第二种情况一样

fanliang11 commented 5 years ago

Qos=0,会清空之前的遗嘱消息,添加新的遗嘱消息 Qos=1 和2 我看看,再回复你