當前位置: 妍妍網 > 碼農

mica-mqtt 2.3.0 釋出,新的起點

2024-05-30碼農

一、簡介

mica-mqtt 基於 java aio 實作的 簡單 低延遲 高效能 的 mqtt 物聯網開源元件。 mica-mqtt 更加易於整合到已有服務和二次開發,降低自研物聯網平台開發成本。

二、功能

  • 支持 MQTT v3.1、v3.1.1 以及 v5.0 協定。

  • 支持 websocket mqtt 子協定(支持 mqtt.js)。

  • 支持 http rest api,http api 文件詳見。

  • 支持 MQTT client 客戶端。

  • 支持 MQTT server 伺服端。

  • 支持 MQTT 遺囑訊息。

  • 支持 MQTT 保留訊息。

  • 支持自訂訊息(mq)處理轉發實作集群。

  • MQTT 客戶端 阿裏雲 mqtt 連線 demo。

  • 支持 GraalVM 編譯成本機可執行程式。

  • 支持 Spring boot 計畫快速接入(mica-mqtt-spring-boot-starter)。

  • mica-mqtt-spring-boot-starter 支持對接 Prometheus + Grafana。

  • 基於 redis pub/sub 實作集群,詳見 mica-mqtt-broker 模組。

  • 三、使用場景

  • 物聯網(雲端 mqtt broker)

  • 物聯網(邊緣端訊息通訊)

  • 群組類 IM

  • 訊息推播

  • 簡單、易用的 mqtt client 客戶端

  • 四、更新記錄

    v2.3.0 - 2024-05-26

  • ✨ mica-mqtt 最佳化 MqttQoS 列舉,改為 MqttQoS.QOS0,方便使用(不相容)。

  • ✨ mica-mqtt-client 同步私服部份功能,支持 stop 完全停止。

  • ✨ mica-mqtt-client 同步私服部份功能,MqttClient 都添加了 schedule、scheduleOnce 方法,( 耗時任務,請務必自訂執行緒池

  • ✨ mica-mqtt-server 最佳化裝置離線,簡化程式碼。

  • ✨ mica-mqtt-server 使用者繫結使用 tio 內建 Tio.bindUser(context, username)。

  • 🐛 mica-mqtt-client-spring-boot-starter 修復 @MqttClientSubscribe 型別錯誤時的異常提示。

  • 🐛 mica-mqtt-client 修復重連可能失敗的問題 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 預熱

    感謝翼神采用 mica-mqtt 作為 Bladex-Links 物聯平台基石!BladeX Links 已完成了大部份功能,目前已在打磨細節階段。有需要的老板可以提前關註哦。