新年10个Flag实现中~
访问量
557.4K
文章数
121
运行天
715
前言基于MqttWkv1.0.7。MqttWk没有构建内存中的订阅树,直接利用存储在Redis中的订阅信息来获取订阅者。订阅树算法分析主要的代码在cn.wizzer.iot.mqtt.server.store.subscribe.SubscribeStoreService:@OverridepublicList<SubscribeStore>search(Stringtopic){List<SubscribeStore>subscribeStores=newArrayList<SubscribeStore>();List<SubscribeStore>list=subscribeNotWildcardCache.all(topic);if(li
前言基于MqttWkv1.0.7。  一、BrokerHandlerchannelActive()@OverridepublicvoidchannelActive(ChannelHandlerContextctx)throwsException{super.channelActive(ctx);this.channelGroup.add(ctx.channel());this.channelIdMap.put(ctx.channel().id().asShortText(),ctx.channel().id());}当channel刚生效(客户端刚连接),将其channel信息存起来。Netty默认提供了channel管理,这里自己做channel管理是为了方便根据cha
前言基于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)订阅和发布订阅
1