EMQX-百万级开源MQTT消息服务器之填坑之路

填坑1、emqx_auth_http开启后,写法建议如下,状态码200是授权成功(注意返回值不能是"ignore"),非200是授权失败

EMQX-百万级开源MQTT消息服务器之填坑之路_第1张图片

实际上严格区分有,三种:

1、状态码200,返回值不是”ignore“。这代表授权成功。

2、状态码200,返回值是”ignore"。代表忽略此次授权。

3、状态码不是200。代表授权失败。

而写法1在auth和superuser是代表授权成功,写法2在auth和superuser上代表的忽略授权其实就是授权失败,但在acl上却是授权成功,写法3都是授权失败。这里面的ignore在不同状态下有歧义,所以实际开发中建议无视2的写法,用上图的写法。

 

clientId不能订阅到自己发布的主题,即相同的clientId订阅发布失败。http_auth在acl授权的时候,就算不通过授权,publish都不会抛出异常。这样坑到了,由于一开始不知道publish不会抛出异常,以为http_auth不生效。

 

填坑2、消息类型qos不是端对端的,取决于推送方和接收方双方的最低消息类型。所以不要傻傻的以为在接收方设置好消息类型qos,实际就是按这个qos来处理消息。?

你可能感兴趣的:(EMQX-百万级开源MQTT消息服务器之填坑之路)