我是靠谱客的博主 大胆小海豚,最近开发中收集的这篇文章主要介绍jetlinks平台Mqtt设备接入认证问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考官方接入教程:设备接入教程 | 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设备接入认证问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部