Cannot parse topic

环境信息

  • EMQX 版本: emqx 4.3.11
  • 操作系统及版本:Centos 8.0
  • 其他 mqttx 1.7.0版本

问题描述

在测试的服务器上面安装了emqx 4.3.11 版本的。发现连接没有问题。可以在正式的服务器上面安装 一模一样的版本。出现了下面的问题。服务器上面 18083 和1883 端口都开放了

配置文件及日志

服务器上面的版本截图
image

然后使用java 去链接的时候 出现了链接超时的情况

最新更新 因为服务器是政务云,所以java的客户端可以通过内网的ip去进行连接的。但是互联网状态下去链接就是不行。

添加了telnet的图片,保证网络和端口是开放的。
2718b0c2d5df8e758361794e1553e13

e6f4291c1e437ca8b54e290d2c9a4f1

最新添加了tcp 客户端发送mqtt请求的抓包

但是服务去器端的tcpdump 命令还是为0

第一个 cannot parse topic 看起来是 MQTT 客户端的问题。
第二个 connect timeout 看起来是客户端连不上服务器,网络不通。先用 telnet 测试一下网络状况。

帮你 google 了一下第一个问题:MQTT 5.0 cannot subscribe: Cannot parse topic · Issue #24 · mqttjs/mqtt-connection · GitHub

第一个问题: 其实我是用同一个客户端 去两个两台服务器的 emqx。一台是我们测试环境的emqx。显示连接成功,一台是政务云的显示失败,所以我排除了客户端的问题。
第二个问题:
2718b0c2d5df8e758361794e1553e13
e6f4291c1e437ca8b54e290d2c9a4f1
telnet 是成功的。18083的控制台也是能出来的。所以我这边很迷惑

问题解决 通过抓包发现原来政务云 有WAF拦截。导致返回的内容不是mqtt的返回内容。客户端就报错了。叫政务云那边去设置一下就好了。问题也都能解释的通了。