Skip to content

sliverTwo/jfinal-mqtt-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jfinal Mqtt消息插件

简介

jfinal-mqtt-plugin是jfinal的mqtt消息插件插件,目前基于eclipse开源的paho项目。

MAVEN导入

<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

方法介绍

主要有发布、订阅、取消订阅以及手动确认的方法

  1. boolean subscribe(String topic, int qos, IMqttMessageListener messageListener)
  2. boolean subscribe(String topic, int qos, IMqttMessageListener messageListener, long timeout)
  3. sub(String topic, int qos, IMqttMessageListener messageListener)
  4. sub(String topic, int qos, IMqttMessageListener messageListener, long timeout)
  5. unsub(String topic)
  6. boolean unsubscribe(String topic)
  7. publish(String topic, Kv paylod, int qos, boolean retained)
  8. publish(String topic, byte[] payload, int qos, boolean retained)
  9. publish(String topic, byte[] payload, int qos, boolean retained, long timeout)
  10. pub(String topic, byte[] payload, int qos, boolean retained)
  11. pub(String topic, byte[] payload, int qos, boolean retained, long timeout)
  12. pub(String topic, Kv paylod, int qos, boolean retained)
  13. 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 消息体

注意事项

  1. 回调事件为同步回调,不要在收到消息的回调中发布消息,否则会导致死锁,如需发布消息,请新开一个线程.
  2. 回调事件中抛出异常会导致连接断开.

更新日志

20201129 1.2.0

  • 新增 默认回调支持自动重新订阅之前订阅的主题

20201021 1.1.0

  • 添加对emq共享主题的支持

About

jfinal Mqtt消息插件

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages