EMQX客户端订阅主题莫明被断开

错误报告

2022-11-12T07:19:21.006221+00:00 [error] [xx.xxx.xx.xxx:???] [MQTT] , Parse failed for function_clause, [{emqx_frame,parse_packet,[{mqtt_packet_header,4,false,3,true},<<“T /admin/log in.action HTTP/1.1\r\nContent-Type: application/x-www-form-”>>,#{max_size => 1048576,strict_mode => false,version => 4}],[{file,“emqx_frame.erl”},{line,224}]},{emqx_frame,parse_frame ,4,[{file,“emqx_frame.erl”},{line,201}]},{emqx_connection,parse_incoming,3,[{file,“emqx_connection.erl”},{line,657}]},{emqx_connection,handle_msg,2,[{file,“emqx_connection.erl”},{lin e,650}]},{emqx_connection,process_msg,2,[{file,“emqx_connection.erl”},{line,396}]},{emqx_connection,handle_recv,3,[{file,“emqx_connection.erl”},{line,360}]},{proc_lib,wake_up,3,[{fil e,“proc_lib.erl”},{line,236}]}], Frame data:<<“GET /admin/login.action HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nAccept: application/json, text/javascript, /; q=0.01\r\nX-Requested-With: XMLHttpRequest\r\nReferer: http://app.sczq.com.cn:9090/admin/video.action\r\nAccept-Language: zh-CN\r\nOrigin: http://app.sczq.com.cn:9090\ r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7”…>>

  • EMQX 版本:
    EMQX4.4.1

使用社区版EMQX的时候,周期性的发现客户端订阅的主题被断开,被断开时EMQX服务器的日志中会报上面这个错误信息,不知道是什么原因造成的

你好,这个日志应该还是比较清楚的,断开连接的原因的是报文解析失败,而报文的内容是:

GET /admin/login.action HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\r\nAccept: application/json, text/javascript, /; q=0.01\r\nX-Requested-With: XMLHttpRequest\r\nReferer: http://app.sczq.com.cn:9090/admin/video.action\r\nAccept-Language: zh-CN\r\nOrigin: http://app.sczq.com.cn:9090\ r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7

所以是你的设备发送了错误的报文,你可以从这个角度去排查一下。

嗯嗯,好的。感谢大佬回复,另外请教一个问题:我们使用开源版的EMQX的时候,当设备发送的消息达到一定量时,我们自己的服务再去订阅EMQX上面的消息的时候,就订阅不上了,然后报连接超时。请问这个是什么原因引起的?

你看下是不是负载太高了?

负载不高

信息有点少,你们使用了哪些功能?