文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(23) - websocket客户端连接过程分析(Wireshark抓包+源码分析)

我们可以使用emq自带的Dashboard插件,进行websocket调试,打开谷歌浏览器输入网址,其中192.168.83.128是emq所在的IP地址:http://192.168.83.128:18083/#/websocket用户名:admin,密码:publicWebSocket URI:ws(s)://192.168.83.128:8083/mqttTCP URI:tcp://192....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(22) - 关于客户端上线自动订阅主题

通过修改配置文件即可实现。emq v1.1.3,rel\emqttd\etc\emqttd.config‘subscription’扩展模块支持客户端上线时,自动订阅或恢复订阅某些主题(Topic):%% Modules {modules, [ %% Client presence management module. %% Publish message...

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(21) - 关于emq的payload的使用和加密

问:payload传输过程中会不会拆包,粘包?业务层拿到payload还需要自己组包吗?答:不需要,mqtt协议有约定,emq会帮忙处理tcp的粘包拆包。总之,直接拿出来用即可。问:payload怎么加密?答:安全,如果考虑商业用途的话,建议TLS+业务加密,双重加密。TLS私钥如果没有被暴露的话,基本无解。双重加密比较重要,因为如果是端,像Android和iOS其实是可以绕过TLS的,这个时候....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(20) - 如果客户端clientid为空,emq会随机帮忙生成

mqtt v3.1.1协议有规定clientid可以为空,所以当客户端clientid为空,emq会随机帮忙生成。一、源码emq 1.1.3 -- emqttd_protocol.erl客户端经过TCP三次握手建立连接之后,会发起mqtt connect packet,服务器接收到后开始处理这个数据包,入口函数就是如下的源文件,process函数:https://github.com/emqx/....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(19) - emq软件版本升级之后,因插件版本不对而引发的问题

本人把emq2.3.7版本写的插件copy到新版本emq2.3.11之后,编译可以通过,但是运行报错。经过反复调试发现,是版本号有区别造成:/home/emqx-rel-2.3.?/deps/emq_auth_clientid/Makefileemq v2.3.7PROJECT = emq_auth_clientid PROJECT_DESCRIPTION = Authentication wi....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(18) - 一个客户端sub很多主题和数据,出现宕机?使用本地共享订阅解决!

EMQ中CPU是公平分配给MQTT会话,大量pub消息到一个订阅,订阅不会拿到更多cpu,最终导致消息累积,内存溢出宕机。最好的解决办法是分组订阅,把消息打散,多个客户端订阅。问:请问一下,我现在的业务就是只使用一个sub,主题是\hello\#,去订阅数万个终端消息。请问针对这个问题,如何来优化业务逻辑?可以通过增加sub的方式吗?即把数万终端分成几个小组,每小组往一个主题pub,然后再分别订....

我的mqtt协议和emqttd开源项目个人理解(18) - 一个客户端sub很多主题和数据,出现宕机?使用本地共享订阅解决!
文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(17) - [error] Dependency luerl is specified as a dependency but is not...

编译源码出错:===> No entry for profile default in config. ===> Verifying dependencies... ===> Compiling jwerl make[2]: Leaving directory `/home/emq2.3.10/deps/jwerl' make[1]: Leaving directory...

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(16) - [error] Autocluster exception: {badmatch,undefined}

emq2.3.X会出现这个错误,怎么破?出现这个错误,emq程序无法正常启动,1883端口没有在监听。emqttd broker is starting...[ok]emqttd alarm is starting...[ok]emqttd mod supervisor is starting...[ok]emqttd bridge supervisor is starting...[ok]em....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(15) - MQTT消息推送协议应用数据包超时是否需要重发?

https://blog.csdn.net/libaineu2004/article/details/80493902今天在看MQTT协议文档,到处关于QoS(Quality of Service)的介绍,文档说如果没有收到对方的PUBREL等确认包,超时后server需要'delivery retry", 一开始觉得理所当然的,重发嘛,丢包,正常。然后就看到消息重发(Message deliv....

文章 2021-11-14 来自:开发者社区

我的mqtt协议和emqttd开源项目个人理解(13) - Hook使用和连接Kafka发送消息,使用brod库

一、工作环境准备erlang kafka客户端库使用的是brod,https://github.com/klarna/brodemq使用的是v2.3.5版本,https://github.com/emqtt/emq-relxkafka的运行环境准备,http://blog.csdn.net/libaineu2004/article/details/79202408我们以插件的形式来实现,我的插件....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。