按照现在认证规则,设备clientId 格式修改

Blade 未结 3 201
SDLY_20250610
SDLY_20250610 剑侠 2025-07-08 10:13

一、该问题的重现步骤是什么?

1. 按照现在认证规则,设备clientId 格式为:0e827ddd1feb95a9263e91648746937a@000000|clienttype=0,timestamp=1751937247073|,但真实设备不支持带特殊字符如“=”,“,”等的。请问修改设备认证代码如何修改?

2. 启动了server、broker服务,在代码中添加了打印信息,也没打印

3.

image.png

二、你期待的结果是什么?实际看到的又是什么?

设备clientId 认证格式可以自己随意编写,认证成功。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

3条回答
  • 2025-07-08 13:44

    用的是系统自带的mqtt服务broker,应该修改哪个?

    回答: 2025-07-08 15:03

    用的是系统自带的mqtt服务broker,应该修改哪个?

    作者追问:2025-07-08 15:09

    自带的也有两套的,一套单机一套集群,你可以在这三个类打断点,断点进哪个就改哪个

    1 讨论(0)
  • 2025-07-08 13:28

    这个认证类有三处地方,你具体用哪种类型的就得修改哪个,你可以三处 都修改下,或者打个断点,设备连接的时候看看断点到了哪个类,就去修改对应的。

    CleanShot20250705171816@2x.png

    0 讨论(0)
  • 2025-07-08 16:32
    0e827ddd1feb95a9263e91648746937a@000000|clienttype=0,timestamp=1751937247073|

    真实设备可以只传 0e827ddd1feb95a9263e91648746937a@000000 就行,clienttype 默认是0可以不传,时间戳不建议真实设备传,这样设备每次 mqtt 重连都需要重新计算密码,还有 clientId 也会随之变化(会影响一些场景,例如保留消息),这个时间戳一版是建议页面 websocket mqtt 等场景使用。

    作者追问:2025-07-08 21:33

    系统启动的是单机版broker,用带参数的clientId(如下图)可以连通,但去掉参数clientId(bc14273011e17eb3b5984c1fa7fa432d@000000)就无法连通,请问那些地方还需要设置吗?

    image.png

    0 讨论(1)
代码语言
提交回复