mica-mqtt 2.3.0 發(fā)布,新的起點
共 2522字,需瀏覽 6分鐘
·
2024-05-30 08:30
一、簡介
mica-mqtt 基于 java aio 實現(xiàn)的簡單、低延遲、高性能 的 mqtt 物聯(lián)網(wǎng)開源組件。mica-mqtt 更加易于集成到已有服務(wù)和二次開發(fā),降低自研物聯(lián)網(wǎng)平臺開發(fā)成本。
二、功能
-
支持 MQTT v3.1、v3.1.1 以及 v5.0 協(xié)議。 -
支持 websocket mqtt 子協(xié)議(支持 mqtt.js)。 -
支持 http rest api,http api 文檔詳見。 -
支持 MQTT client 客戶端。 -
支持 MQTT server 服務(wù)端。 -
支持 MQTT 遺囑消息。 -
支持 MQTT 保留消息。 -
支持自定義消息(mq)處理轉(zhuǎn)發(fā)實現(xiàn)集群。 -
MQTT 客戶端 阿里云 mqtt 連接 demo。 -
支持 GraalVM 編譯成本機(jī)可執(zhí)行程序。 -
支持 Spring boot 項目快速接入(mica-mqtt-spring-boot-starter)。 -
mica-mqtt-spring-boot-starter 支持對接 Prometheus + Grafana。 -
基于 redis pub/sub 實現(xiàn)集群,詳見 mica-mqtt-broker 模塊。
三、使用場景
-
物聯(lián)網(wǎng)(云端 mqtt broker) -
物聯(lián)網(wǎng)(邊緣端消息通信) -
群組類 IM -
消息推送 -
簡單、易用的 mqtt client 客戶端
四、更新記錄
v2.3.0 - 2024-05-26
-
? mica-mqtt 優(yōu)化 MqttQoS 枚舉,改為 MqttQoS.QOS0,方便使用(不兼容)。 -
? mica-mqtt-client 同步私服部分功能,支持 stop 完全停止。 -
? mica-mqtt-client 同步私服部分功能,MqttClient 都添加了 schedule、scheduleOnce 方法,(耗時任務(wù),請務(wù)必自定義線程池) -
? mica-mqtt-server 優(yōu)化設(shè)備離線,簡化代碼。 -
? mica-mqtt-server 用戶綁定使用 tio 內(nèi)置 Tio.bindUser(context, username)。 -
?? mica-mqtt-client-spring-boot-starter 修復(fù) @MqttClientSubscribe類型錯誤時的異常提示。 -
?? mica-mqtt-client 修復(fù)重連可能失敗的問題 gitee #I9RI8E 感謝 @YYGuo反饋。
五、更新說明
5.1 mqtt-client stop 停止
之前有好幾個朋友咨詢到 client 停止的問題,在 2.3.0 中同步了下私服版的代碼,將心跳線程改為了時間輪的方式。也支持了 stop,可以在更多場景中使用。
5.2 mqtt-client schedule
MqttClient client = MqttClient.create()
.ip("127.0.0.1")
.port(1883)
.username("mica")
.password("mica")
.connectSync();
// 使用 schedule 定時
client.schedule(() -> {
client.publish("/test/client", "mica最牛皮".getBytes(StandardCharsets.UTF_8));
}, 2000);
5.3 mqtt-server username 綁定
mica-mqtt 2.3.0 中改為使用 Tio.bindUser(context, username) 綁定連接 username ,如需獲取連接 username 可以使用 context.getUserId() 獲取。
獲取 username 的連接集合 Set<ChannelContext> usernameSet = Tio.getByUserid(context.tioConfig, "username");
六、BladeX Links 預(yù)熱
感謝翼神采用 mica-mqtt 作為 Bladex-Links 物聯(lián)平臺基石!BladeX Links 已完成了大部分功能,目前已在打磨細(xì)節(jié)階段。有需要的老板可以提前關(guān)注哦。
評論
圖片
表情
