mochi-mqtt/server golang mqtt 包

最近在学习nats 的mqtt 能力,默认nats mqtt 的实现是3.1.1 的,同时想着集成nanomq 的bridge 进行桥接实现共享订阅的能力,但是发现有一个兼容的问题,似乎是nanomq 在发送3.1.1 协议包的时候,nats mqtt 解析有一些问题(但是nats mqtt 在不同client 测试还是没问忒的),那似乎就是nanomq 实现不太完整了,实际通过抓包发现就是解析的格式上不是很对,然后就想基于golang 自己开发一个类似nanomq bridge 的能力,在查找中发现mochi-mqtt/server 包很不错,默认有mqtt server 实现,同时还能快速的开发bridge (InlineClient 能力)

mochi-mqtt/server 包含的特性

  • 完整的mqtt 5 能力,同时兼容3.1.1 以及3.0.0 协议,支持topic 别名,共享订阅等
  • 开发友好,支持hooks,以及相对完整的broker 能力,支持InlineClient,可以快速开发bridge
  • 高性能以及稳定,通过了paho 的兼容测试
  • 支持tcp,websockeete,以及 $SYS 消息
  • 内置redis,badger,pebble,bolt 等基于hooks 的持久化
  • 内建通过hooks的基于规则的acl处理

说明

mochi-mqtt/server 实现mqtt server 以及bridge 还是比较方便的,后边简单演示下如何集成nats mqtt

参考资料

https://github.com/mochi-mqtt/server

https://github.com/nanomq/nanomq

https://docs.nats.io/running-a-nats-service/configuration/mqtt

https://github.com/mochi-mqtt/server/blob/main/cmd/main.go

posted on 2025-10-20 01:16  荣锋亮  阅读(0)  评论(0)    收藏  举报

导航