基于MQTT提高客户端和服务器之间推送可靠性

一、MQTT简介

MQTT翻译过来叫消息队列遥测传输是基于发布和订阅范式的消息协议,它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下二设计的发布/订阅型消息协议。

MQTT协议是为大量计算能力有限,且工作在低带宽,不可靠网络的远程传感器和控制设备通讯而设计的协议具有以下特性:

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

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

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

4、有三种消息发布的服务质量

5、小型传输,开销很小(固定长度的头部2byte)协议交换最小化,以降低网络流量;

6、使用last will和testament特性通知相关客户端异常中断的机制

二、项目运用

本人在项目中基于MQTTClient三方库进行实战

思路如下:

用户登录后就开启mqtt等登录和订阅操作,会在代理中接收到订阅的消息。这个消息是有服务端推送的服务过来的,通常是一段json字符串。用户在退出的时候断开订阅消息。

针对每个用户设定唯一的订阅key 和value,这样做的目的就是为了防止多播的场景。在收到消息的时候针对消息体的token进行配对,如果token匹配上是用户订阅的消息,那就进行相应业务处理。

当服务器收到心跳断开的消息就不再给客户端发送一些消息。

当用户退出登录、token失效、App进入到后台断开mqtt链接

当用户登录成功、进入到前台的时候就链接mqtt

当收到mqtt的消息过来的时候根据业务场景选择展示本地推送还是静默去转发消息。

三、参考资料

MQTT百度百科

mqtt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值