iot-mqtt

Java 和 Netty 实现的 MQTT 代理
授权协议 Apache-2.0
开发语言 Java
所属分类 服务器软件、 JMS/消息中间件
软件类型 开源软件
地区 国产
投 递 者 闻人景澄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

iot-mqtt,由 java 和 netty 实现的 MQTT 代理,支持持久性。

本项目完全借鉴 jmqtt 项目 https://github.com/Cicizz/jmqtt
目前只是对部分代码进行了梳理重构,去除了集群部分, 修正了一些 bug,并加入简单的 $SYS/实现,后期会加入原创的集群的实现。
现在已对 mqtt3.1.1 协议有完整的实现。 本项目默认采用 rocksdb 做消息的持久化,所以即使项目故障推出,也不会丢失数据,恢复项目后可以自动重连发送。 运行方法:

  • maven build 出相应 jar 包,放入release/bin。
  • cd release/bin 目录 执行相应方法 ,相关配置在 config 目录下。
    1. server 启动 broker,默认1883 端口,用户名 admin 密码 123456。
    2. subscribe_test启动接受服务,默认监听/QOS0,/QOS1,/QOS2,三个主题。
    3. send_test启动发送服务,向/QOS0,/QOS1,/QOS2三个主题,并发1000个线程发送消息,共200万个消息。
    4. subscribe_sys启动监控服务,默认监听$SYS/主题.并显示当前所有client信息,包含每个client 接受消息数,发送消息数,关注的主题,等信息。
  • 4.3 Quality of Service levels and protocol flows 服务质量水平和协议流程 MQTT根据此处定义的服务质量(QoS)级别提供应用程序消息。传递协议是对称的,在下面的描述中,客户端和服务器都可以扮演发送者或接收者的角色。传递协议仅涉及从单个发送方向单个接收方传递应用程序消息。当服务器向多个客户端提供应用程序消息时,将独立处理每个客户端。用于向客户端传送出

  • MQTT是一种客户机服务器发布/订阅消息传递传输协议。它重量轻、开放、简单、设计简单、易于实现。这些特性使其非常适合在许多情况下使用,包括受限的环境,如机器间通信(M2M)和物联网(IoT)环境,在这些环境中需要少量代码占用空间,并且/或网络带宽非常宝贵。 该协议在TCP/IP或其他提供有序、无损、双向连接的网络协议上运行。它的功能包括: ·使用发布/订阅消息模式,提供一对多的消息分发和应用程序解

  • 3.3发布 -   PUBLISH 发布消息 PUBLISH控制包从客户端发送到服务器或从服务器发送到客户端以传输应用程序消息。 3.3.1 Fixed header 固定标题 图3.10 - PUBLISH数据包固定标头说明了固定标头格式: 图3.10 - PUBLISH数据包固定标头 位 7 6 5 4 3 2 1 0 字节1 MQTT控制包类型(3) DUP标志 QoS级别 保留   0 0

  • Paho-MQTT是由Eclipse基金会开发的开源Python MQTT客户端。Paho-MQTT可以在任何支持Python的设备上运行。在本教程中,我们将使用 Paho 构建一个 MQTT 客户端。我将把库的每个功能添加到客户端程序中,并解释它是如何工作的。在本教程结束时,您将对库的工作原理有一个基本的了解。 如果您不熟悉 MQTT,最好先学习我的上一篇《MQTT基础知识及工作原理》 0. 安

  • 3.14 DISCONNECT - 断开通知 DISCONNECT数据包是从客户端发送到服务器的最终控制数据包。它表示客户端正在完全断开连接。 3.14.1 Fixed Header 固定标题 图3.35 - DISCONNECT数据包固定标头 位 7 6 5 4 3 2 1 0 字节1 MQTT控制包类型(14) 保留的   1 1 1 0 0 0 0 0 字节2 剩余长度(0)   0 0 0

  • 3.12 PINGREQ - PING请求 PINGREQ数据包从客户端发送到服务器。它可以用于: 在没有任何其他控制数据包从客户端发送到服务器的情况下,向服务器指示客户端处于活动状态。 请求服务器响应以确认它处于活动状态。 练习网络以指示网络连接处于活动状态。   此数据包用于Keep Alive处理,有关详细信息,请参阅第3.1.2.10节。 3.12.1 Fixed Header 固定标题

  • 消息发布确认,仅仅在消息QOS为1的时候响应。 QOS: Quality of Service 服务质量,是一种可以为不同类型业务流提供差分(即“不同”)服务等级的技术。通过QoS可以给那些对带宽、时延、时延抖动、丢包率等敏感的业务流提供更加优先的服务等级,使业务能满足用户正常、高性能使用的需求。 3.4 PUBACK - 发布确认 PUBACK数据包是对QoS级别为1的PUBLISH数据包的响应

  • 树莓派使用paho-mqtt库进行MQTT通讯 参考资料: https://www.emqx.cn/blog/use-mqtt-with-raspberry-pi https://pypi.org/project/paho-mqtt/ 1、安装paho-mqtt库 官方网站:https://pypi.org/project/paho-mqtt/ pip install paho-mqtt 2、登录

 相关资料
  • 我一直在考虑MQTT协议,但我不想让一个外部服务器运行MQTT代理,而且我找不到Win IoT的代理。Windows IOT Core是否存在MQTT代理?如果没有,你会推荐什么通信协议?

  • 这个组件提供了一个服务器,它能处理远程MQTT客户端连接,通信和信息交换。 它的API提供了,当接受到客户端发送的raw protocol消息时相应的事件和提供一些发送信息到客户端的功能。 它不是一个功能齐全的MQTT broker,但可以用来建立类似的东西或者协议转换。 使用MQTT服务器 要使用Vert.x MQTT服务器,增加以下依赖到构建描述符中 Maven (in your pom.xm

  • iot-mqtt-bridge feature: [x] 解析简单 mqtt 消息存到 mysql [ ] 解析简单 mqtt 消息存到 kafka [ ] 解析复杂消息 [ ] 批处理存储数据 [ ] 自定义各种 handler 你只需要在 model.json 里定义一个描述文件,具体以含义看注释, 然后配置 mqtt ,mysql 连接信息在 bridge.yml, 运行 release/b

  • null 对于谷歌来说,我们已经发现控制流与Azure和AWS相比是不同的。 对于Google来说,在等待接收消息之前,我们需要每次订阅和取消订阅给定的主题,而对于AWS和Azure来说,我们需要在打开MQTT连接时订阅一次。 问题: 有时5秒的设备超时发生,因为它无法从谷歌MQTT桥接收订阅主题的消息。添加多次重试来克服超时问题是不成功的,因为问题仍然存在,因为设备在开机后的设备操作45-60秒

  • 我是PHP领域的新手,在连接到MQTT时遇到了一些问题。 错误为:stream_socket_client():无法连接到TCP://...*:8083(连接超时) 在下面的代码中面临问题:

  • AWS IoT Core额外计量详细信息[https://AWS.amazon.com/IoT-Core/pricing/addition-details/#messaging] 问题1:PUBACK MQTT PUBACK(从设备接收)作为单个5 KB消息计量 MQTT发布(由服务发送)根据有效负载和主题的大小(以字节为单位)进行度量 根据我的理解,客户机/设备将消息发布给代理,即从设备接收的消