日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java mqtt协议_基于 tio 实现 mqtt5 协议之 micamqtt

發(fā)布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java mqtt协议_基于 tio 实现 mqtt5 协议之 micamqtt 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、簡介

MQTT 全稱為 Message Queuing Telemetry Transport(消息隊列遙測傳輸)是一種基于發(fā)布/訂閱范式的“輕量級”消息協(xié)議,由 IBM 發(fā)布。

目前使用比較廣泛的就是 mqtt 3.1.1(2014年制定),mqtt 5.0(2018年制定),Mqtt5特性詳見:https://www.emqx.io/cn/mqtt/mqtt5

二、mica-mqtt

為了深入了解 mqtt 協(xié)議的,在今年 9 月左右基于 t-io 開發(fā)了 mica-mqtt,mqtt 編解碼直接基于 netty codec-mqtt 模塊進行的調整,當時 netty 還不支持 mqtt5 協(xié)議。

netty 的 codec-mqtt 比較成熟,大多數(shù) java 的 mqtt-broker 也是基于它實現(xiàn)的。下面我主要介紹我是如何將 netty 的 codec-mqtt 移植到 t-io 的。

三、mqtt5協(xié)議移植

前 2 周發(fā)現(xiàn) netty 的 codec-mqtt 已經支持 mqtt5 協(xié)議了,花了一點時間對它進行了升級,下面跟我一起來看看我是怎么處理的。

3.1 copy 源碼

先直接 copy 源碼,對代碼進行初步的調整,

  • ObjectUtil.checkNotNull改為 jdk 的Objects.requireNonNull
  • CharsetUtil.UTF_8調整為 StandardCharsets.UTF_8
  • 重寫toString方法
  • 3.2 ByteBuf 轉 ByteBuffer

    netty 中采用 ByteBuf 來解析協(xié)議,t-io 則是使用的 ByteBuffer,那么我們最大的任務就是將 ByteBuf 轉成 ByteBuffer 了。

    ByteBuf vs ByteBuffer 方法對比

    ByteBufByteBuffer
    writeByteput
    writeBytesput
    writeShortputShort
    writeIntputInt
    getByteget
    getBytesget
    getShortgetShort
    getIntgetInt

    3.3 mqtt5 encodeProperties 處理

    由于 ByteBuffer 是定長的,初始化的時候就需要指定長度,在 encodeProperties 我自定義了一個WriteBuffer做數(shù)據(jù)承載,最后轉成byte[]返回。

    圖片

    圖示WriteBuffer

    圖片

    WriteBuffer底層是 t-io 自帶原作者為 biezhi(王爵)同學的FastByteBuffer。

    圖片

    四、效果(mqtt5協(xié)議)

    4.1 使用 MQTTX 客戶端


    4.2 使用 mica-mqtt 客戶端

    五、待辦

    由于精力有限,mica-mqtt 目前還屬于試驗性質。希望有更多的同學可以參與進來。

  • topic 的綁定。
  • 實現(xiàn)基礎的 mqtt-broker 功能。
  • 說明:另外可以參考 zbus 來處理消息或者實現(xiàn)內部的集群。

    六、關于 t-io

    t-io 是一款簡單、高性能、低延遲的網絡中臺。t-io 解決了其它網絡框架沒有解決的用戶痛點,幫助企業(yè)節(jié)約大量人力成本。

    t-io技術白皮書:https://www.tiocloud.com/tio.pdf

    t-io 官方基礎 t-io 的 IM(譚聊) 1.4 萬人大群,邀你一起來耍!!!


    譚聊產品介紹:https://www.tiocloud.com/tioim.pdf

    七、相關連接

    mica-mqtt:https://gitee.com/596392912/mica-mqtt

    t-io:https://gitee.com/tywo45/t-io

    總結

    以上是生活随笔為你收集整理的java mqtt协议_基于 tio 实现 mqtt5 协议之 micamqtt的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。