新年10个Flag实现中~
访问量
495.6K
文章数
113
运行天
681
前言基于MqttWkv1.0.7。BrokerServer是MqttWk从MainLaucher启动之后执行的第一个类。start()publicvoidstart()throwsException{LOGGER.info("Initializing{}MQTTBroker...","["+brokerProperties.getId()+"]");channelGroup=newDefaultChannelGroup(GlobalEventExecutor.INSTANCE);channelIdMap=newHashMap<>();bossGroup=brokerProperties.getUseEpoll()?newEpollEventLoopGroup():newNioEv
前言基于MqttWkv1.0.7。  MqttWk是我见过最清晰、代码量最少的Broker了,分析其源码有利于初步了解。一、代码结构分析1、整体架构mqtt-auth:验证权限方面的代码mqtt-broker:Broker核心代码mqtt-common:抽象出来的持久化接口mqtt-store:持久化接口的Redis、Kafka实现mqtt-zoo:简单测试代码2、mqtt-auth代码结构验证服务的实现,还有一些验证工具类3、mqtt-broker核心代码结构cluster:集群通信的实现,用的是Redis的发布订阅作消息总线codec:基于Websocket的MQTT通信需要特殊的编解码器,这里是为websocket写的编解码器config:Broker参数配置han
一、功能测试工具1、eclipse/paho.mqtt-spy【链接】github下载地址| mqtt-spy官方功能介绍  【简介】这是一个基于java做的GUI工具,需要jdk8+。界面一看就懂,建议连接的时候开启Details模式,这样功能会全一些:【功能介绍】1)连接、安全协议:mqtt3.1/3.1.1连接方式:IP+任意端口+TCP/Websocket+TLS(CA、TrustStore)1.1、1.2、1.3ClientID:可以帮助你自动生成随机IDCleanSession标志位连接超时、失败重连、失败重订阅、重连间隔KeepAlive设置Username、Password设置遗嘱设置:Topic、QoS、Retain、Data2)订阅和发布订阅
一、MQTTBroker的需求1、基本需求1)支持mqtt3.1/mqtt3.1.1协议(可选mqtt5.0)3.1和3.1.1是最常见的协议版本,几乎目前生产的IoT设备都支持,所以Broker也必须支持。至于5.0版本,目前各大Broker都在努力支持,不过还需要一些时间才会普及。2)支持QoS0、QoS1(可选QoS2)各大厂商都至少支持了QoS1,保证消息到达。一般的场景下不会用到QoS2,所以可以选择性地考虑支持QoS23)支持遗嘱消息这是必须支持的功能,通常设备断开都不是主动断开的,而是没有电了才断开,属于异常断开,需要设置遗嘱消息来通知后端服务或者其他设备进行后续处理。4)支持持久化一些数据如QoS1消息、持久Session,需要支持持久化,这是MQTT协议规定的。5)支持多种
一、MQTT报文通信流程要做消息代理,首先需要解析协议。我们从抽象层面去考虑协议,不去更深挖到底哪个比特组合代表什么含义,这样有利于理清逻辑,而且早就有很多组件可以直接使用,只需要True和False代表什么含义,不需要知道001和010代表什么含义。以MQTT3.1.1为例来描述细节。1、术语定义1)客户端Client使用MQTT的程序或设备,它可以做的操作是:发布消息给其他客户端订阅主题取消订阅主题断开连接2)服务端Server作为发送消息的客户端和请求订阅的客户端之间的中介,也就是MQTTBroker,它可以:接受网络连接接受客户端发布的应用消息处理客户端的订阅和取消订阅请求转发应用消息给符合条件的已订阅客户端3)订阅Subscription包含一个主题过滤器(TopicFilter)
一、物联网和MQTT随着各家嵌入式产品越来越多,技术也越来越成熟,大家都开始想要随便搭载一个AI算法,然后声称为人工智能产品去售卖,像天猫精灵、小米智能音箱之类。这些产品大多都是嵌入式设备,例如小米出了很多传感器,可以用手机APP控制。这就是万物联结的网络,称为物联网(InternetofThings,IoT)。一个很重要的功能当然是通信了,以前的想法就是,要么用Wifi连上家里的路由器,然后搭建一台HTTP服务器来提供服务就好;要么直接用蓝牙等近场通信方式,手机直接和设备交换数据。无论哪种,对嵌入式设备的电量消耗都是巨大的,而且操作的体验并不好,就好像你用蓝牙还得凑近它10米以内。于是人们开始寻找更好的替代方式,1999年IBM开发的MQTT协议重新出现在舞台上。MQTT全称是消息队列遥测
上一页 12