概述
参考官方接入教程:设备接入教程 | JetLinks 物联网基础平台
演示协议:GitHub - jetlinks/demo-protocol: Jetlinks 自定义消息协议解析: 演示协议
密码生成:JetLinks官方协议MQTT用户名密码生成工具
一套下来最烦人的时mqtt连不上。用生成的密码也不行。
关键在于文档没有说明生成器用的密码从哪里来。
正确的菜单在 设备管理-产品-选一个设备-查看,mqtt认证配置下的secureId和secureKey
如果没配置会怎么样呢,官方协议代码写的有坑,没有考虑不配置的情况。空串和空对象比较永远不成立。
简单改一下吧
官方认证器JetLinksAuthenticator类修改 ,判断的时候将secureId加上空串比较
将
if (requestSecureId.equals(secureId) && digest.equals(password)) {
return AuthenticationResponse.success(deviceOperation.getDeviceId());
} else {
return AuthenticationResponse.error(401, "密钥错误"+"secureId="+secureId+"secureKey="+secureKey+"digest="+digest+"username="+username+"password="+password);
}
改成
if (requestSecureId.equals(secureId+"") && digest.equals(password+"")) {
return AuthenticationResponse.success(deviceOperation.getDeviceId());
} else {
return AuthenticationResponse.error(401, "密钥错误"+"secureId="+secureId+"secureKey="+secureKey+"digest="+digest+"username="+username+"password="+password);
}
生成这里填上两个null字符串,这样就能连上mqtt了。
那么设置了secureId和secureKey是否就没有坑了呢,也是有的,保存一遍之后还需要点应用配置才能生效。
最后
以上就是大胆小海豚为你收集整理的jetlinks平台Mqtt设备接入认证问题的全部内容,希望文章能够帮你解决jetlinks平台Mqtt设备接入认证问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复