rabbitmq mqtt插件集成填坑记录(些许个人拙见,不对还望指出)

mqtt:Message Queuing Telemetry Transport,消息队列遥测传输

名字很霸气,适合物联网传感器窄带宽网络不稳定的环境,可以持久化,推送离线保活消息,且可以使用mqttjs在web端使用。

mqtt的服务搭建也很简单,我用的rabbitmq,一行命令启用,重启rabbitmq即可搭建成功。

使用也很简单,需要注意几个关键点

1,qos(0最多收到一次 1至少收到1次 2保证只收到一次)

2,Retained 可以让新订阅的客户端得到发布方的最新的状态值,而不必要等待发送,此操作属于持久化操作,重启服务依然可以收到。

3,CleanSession保证离线后再连接是否收到消息,默认离线消息是存内存,重启会丢失,除非设置持久化,注意接收离线消息clientid必须固定

4,ConnectionTimeout超时时间

5,KeepAliveInterval会话心跳时间

坑1,springboot集成

因为springboot集成众多消息发布订阅的服务,因此只有基本功能,且集成的paho版本过低,mqtt个别高级功能无法使用,spring中有些方法又是针对别的消息服务才有的而mqtt没有,因此集成mqtt不建议使用springboot的集成版本,建议使用mqttclient的包或者paho的包自己实现(个人拙见)

坑2,Qos=2报错,已断开连接 (32109) - java.io.EOFException

确切的说,这是rabbitmq的坑,官网mqtt介绍首页即描述了,一直没注意,另外,据说mqtt3.1也有此问题,升级到3.1.1解决

Supported MQTT 3.1.1 features

  • QoS0 and QoS1 publish & consume
  • QoS2 publish (downgraded to QoS1)

坑3,mqttjs在rabbitmq上集成

需要自己下载源码编译安装mqtt-web-plugin插件,试了好几次都没编译过去,看老外的帖子在这几乎都没遇到啥问题,日了狗了。。。

参考:https://stackoverflow.com/questions/19813101/java-io-eofexception-with-paho#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值