协议名称和版本不一致会在连接的时候校验吗?

客户端在通过mqtt连接emqx服务的时候,如果协议名称是MQIsdp,但是mqtt版本是v3.1.1(4),服务会校验不一致而拒绝连接吗?

正常应该是MQIsdp对应的Version为v3.1(3),但是现在因为库的原因导致传递的并非对应的版本

目前是不会拒绝这种连接的,你可以自己测试下。

测试是拒绝的,版本v5.5.0

抱歉,更正下,确实检查了的,在解析时如果这两个不匹配,会直接报错

如果想取消这个校验自己去编译,那么该修改哪个位置?或者哪个版本的emqx是没有这个校验的?

不建议那样做,否则就改变了MQTT的协议规格。要守规矩 :grinning:

是的,但木已成舟,我想知道怎么改?还请告知下

找到服务器端处理 CONNECT包的那段代码,有比较协议名称的代码(判断两个字符串是否相等), 那那句比较判断语句注释掉。