使用服务端通用消息下发失败,响应103

Blade 未结 3 139
wisedata
wisedata 剑侠 2025-05-09 15:44
悬赏:5

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

1.

7.1 服务端通用消息下发

  • 请求路径https://${域名}/blade-broker/device/mqtt/publish

  • 请求方式:POST

  • 接口描述:向指定设备发送MQTT消息

2. 调用的参数{"productKey":"P63B0nIFxrsm","deviceName":"Device-AWRQ","topic":"/blade/sys/P63B0nIFxrsm/Device-AWRQ/thing/service/switch_off","payload":{"id":"6e5cdf69-d7aa-43d1-9daf-f15540e3ce4e","version":"1.0","method":"thing.service.switch_off","params":null}}

Snipaste_2025-05-09_15-43-40.png

会响应只有一个code: 103

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


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


四、请提供详细的错误堆栈信息,这很重要。
以下是bladex-boker容器内的报错

2025-05-09 15:32:38.506 ERROR 1 --- [   tio-worker-3] n.d.i.m.c.server.MqttServerAioListener   : Mqtt server close clientId:Device-AWRQ, remark:读数据时发生异常: java.io.IOException isRemove:true error:Connection reset

2025-05-09 15:32:38.506  INFO 1 --- [   tio-worker-3] o.s.i.b.l.l.MqttConnectStatusListener    : Mqtt clientId:Device-AWRQ username:Device-AWRQ&P63B0nIFxrsm offline reason:读数据时发生异常: java.io.IOException.

2025-05-09 15:32:38.506  INFO 1 --- [   tio-worker-3] org.tio.core.task.CloseRunnable          : TioServerConfig [name=BladeX-Mqtt-Server], server:0.0.0.0:1883, client:61.142.114.74:12693 准备关闭连接, isNeedRemove:true, 读数据时发生异常: java.io.IOException

2025-05-09 15:32:38.506  INFO 1 --- [   tio-worker-3] org.tio.core.ChannelContext              : 关闭前server:0.0.0.0:1883, client:61.142.114.74:12693, 关闭后server:0.0.0.0:1883, client:$UNKNOWN:9577

2025-05-09 15:32:38.958  INFO 1 --- [pool-4-thread-1] o.s.core.mp.plugins.SqlLogInterceptor    : 

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

3条回答
  • 2025-05-12 15:21

    把请求地址的端口换成broker服务的端口试试呢

    1 讨论(2)
  • 2025-05-09 16:24

    开一个设备模拟器,给模拟器发送http的指令看看接收到的topic是什么。

    另外一个功能没跑通之前,建议直接在本地开发环境测试,测试成功了再到线上验证。如果没成功过就跑线上,那干扰的因素就太多了不好排查的。


    设备模拟器在这里:

    CleanShot20250509162421@2x.png

    作者追问:2025-05-14 10:22

    {
      : ,
      : ,
      : ,
      : 
    }

    调整后,响应值为演示环境暂时无法操作

    0 讨论(0)
  • 2025-05-14 11:09

    image.png


    现在调用接口显示演示环境暂时无法操作,确认配置无问题image.png

    作者追问:2025-05-14 11:15

    用dev模式本地启动来测试

    回答: 2025-05-14 11:50

    2025-05-14 11:49:03.365  WARN 55116 --- [imerTaskService] o.tio.server.task.ServerHeartbeatTask    : BladeX-Mqtt-Server, 检查心跳, 共0个连接, 取锁耗时0ms, 循环耗时0ms, 心跳检测周期:120000ms, 心跳超时时间:90000ms

    2025-05-14 11:49:14.226  WARN 55116 --- [  XNIO-1 task-2] o.s.c.secure.provider.ResponseProvider   : 签名认证失败


    ==================  Auth Start  =================

    BladeAuth : bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJibGFkZXguY24iLCJhdWQiOlsiYmxhZGV4Il0sInRva2VuX3R5cGUiOiJhY2Nlc3NfdG9rZW4iLCJjbGllbnRfaWQiOiJzYWJlcjMiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX2lkIjoiMTEyMzU5ODgyMTczODY3NTIwMSIsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwicG9zdF9pZCI6IjExMjM1OTg4MTc3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsImFjY291bnQiOiJhZG1pbiIsInVzZXJfbmFtZSI6ImFkbWluIiwibmlja19uYW1lIjoi566h55CG5ZGYIiwicmVhbF9uYW1lIjoi566h55CG5ZGYIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImRldGFpbCI6eyJ0eXBlIjoid2ViIn0sImV4cCI6MTc0NzE5NzMyMywibmJmIjoxNzQ3MTkzNzIzfQ.npjJKC23kKlbYW1NOSuVO2iUZ0sAKhy3htSq_svP2sw

    RequestURI : /blade-broker/device/mqtt/publish

    RequestIP: 127.0.0.1

    RequestParam: {"productKey":"P63B0nIFxrsm","deviceName":"Device-PBVR","topic":"/blade/sys/P63B0nIFxrsm/Device-PBVR/thing/service/set_light","payload":{"id":"c6289db6-4aa3-49f5-ab6f-edbcdab3c177","version":"1.0","method":"thing.service.set_light","params":{"input":{"brightness":4}}}}

    ==================  Auth  End   =================

    显示签名失败, 该token和证书可以调用server的接口

    回答: 2025-05-14 11:56

    现在是请求未授权,本地启动的服务有看到请求进来

    作者追问:2025-05-14 11:59

    broker和server服务的sign-key要保持一致

    回答: 2025-05-14 12:02

    看源码发现这边设置的直接返回false是因为这个吗

    image.png


    作者追问:2025-05-14 12:04

    和这里无关,broker和server服务的sign-key要保持一致才行

    作者追问:2025-05-14 12:04

    看文档说明

    CleanShot20250514120440@2x.png

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