jfinal-mqtt-plugin是jfinal的mqtt消息插件插件,目前基于eclipse开源的paho项目。
<dependency>
<groupId>com.iipcloud</groupId>
<artifactId>jfinal-mqtt-plugin</artifactId>
<version>1.2.0</version>
</dependency>
#JFinal-mqtt插件配置文件
#MQTT Broker连接地址 默认地址:tcp://127.0.0.1:1883
mqtt.brokerURL=tcp://192.168.0.188:1883
#MQTT ClientId 默认值:"jf_mq_p_"+System.nanoTime()
mqtt.clientId=
#MQTT Client连接MQTT Broker时使用的用户名,密码 默认不设置
mqtt.userName=username
mqtt.password=password
#是否手动发送消息应答 该设置只在Qos=1有效 默认false
mqtt.manualAcks=false
#是否自动重连 默认false
mqtt.automaticReconnection=true
#自动检测连接重连时间 默认5s 该参数只在mqtt.automaticReconnection=生效
mqtt.reConnectionTimeInterval=5
#是否清理session,false时可接收离线消息 true忽略离线消息 默认true
mqtt.cleanSession=true
#连接MQTT Broker超时时间 默认:30s
mqtt.connectionTimeout=60
#MQTT 心跳时间间隔 默认60s
mqtt.keepAliveInterval=30
#使用MQTT协议的版本 默认3.1.1
mqtt.version=3.1.1
#MQTT最大连接数 默认:10
mqtt.maxConnections=10
#MQTT SSL配置文件地址
mqtt.sslProperties=
#MQTT 消息保存方式 如果不设置,默认保存在内存中,设置了则保存着指定的目录下
mqtt.stroageDir=
# 启用默认的全局回调,用于支持连接断开重连后的主题订阅恢复
mqtt.enableDefaultCallback = false
# 同时发送的最大消息数
mqtt.maxInflight = 1000
主要有发布、订阅、取消订阅以及手动确认的方法
- boolean subscribe(String topic, int qos, IMqttMessageListener messageListener)
- boolean subscribe(String topic, int qos, IMqttMessageListener messageListener, long timeout)
- sub(String topic, int qos, IMqttMessageListener messageListener)
- sub(String topic, int qos, IMqttMessageListener messageListener, long timeout)
- unsub(String topic)
- boolean unsubscribe(String topic)
- publish(String topic, Kv paylod, int qos, boolean retained)
- publish(String topic, byte[] payload, int qos, boolean retained)
- publish(String topic, byte[] payload, int qos, boolean retained, long timeout)
- pub(String topic, byte[] payload, int qos, boolean retained)
- pub(String topic, byte[] payload, int qos, boolean retained, long timeout)
- pub(String topic, Kv paylod, int qos, boolean retained)
- ack(MqttMessage message)
参数名 | 类型 | 说明 |
---|---|---|
topic | String | 发布或订阅的消息主题 |
qos | int | 消息的质量 MqttKit.QOS_AT_MOST_ONCE(最多一次) QOS_AT_LEAST_ONCE(最少一次) QOS_EXACTLY_ONCE(只有一次) 注:消息质量取的是发布者和订阅者中最低的一个 |
messageListener | IMqttMessageListener | 收到指定主题消息后的回调 |
paylod | byte|Kv | 发送的消息内容 |
retained | boolean | 是否持久化 如果设为true 服务器会将该消息发送给当前的订阅者,还会将这个消息推送给新订阅这个题注的订阅者 |
timeout | long | 超时时间 |
message | MqttMessage | 消息体 |
- 回调事件为同步回调,不要在收到消息的回调中发布消息,否则会导致死锁,如需发布消息,请新开一个线程.
- 回调事件中抛出异常会导致连接断开.
- 新增 默认回调支持自动重新订阅之前订阅的主题
- 添加对emq共享主题的支持