Skip to content

xinnan-tech/xiaozhi-mqtt-gateway

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MQTT+UDP 到 WebSocket 桥接服务

项目概述

本项目是基于虾哥开源的 MQTT+UDP 到 WebSocket 桥接服务,进行了修改,以适应xiaozhi-esp32-server

部署使用

部署使用请参考这里

设备管理接口说明

接口认证

API请求需要在请求头中包含有效的Authorization: Bearer xxx令牌,令牌生成规则如下:

  1. 获取当前日期,格式为yyyy-MM-dd(例如:2025-09-15)
  2. 获取.env文件中配置的MQTT_SIGNATURE_KEY
  3. 将日期字符串与MQTT_SIGNATURE_KEY连接(格式:日期+MQTT_SIGNATURE_KEY
  4. 对连接后的字符串进行SHA256哈希计算
  5. 哈希结果即为当日有效的Bearer令牌

注意:服务启动时会自动计算并打印当日的临时密钥,方便测试使用。

接口1 设备指令下发API,支持MCP指令并返回设备响应

curl --location --request POST 'http://localhost:8007/api/commands/lichuang-dev@@@a0_85_e3_f4_49_34@@@aeebef32-f0ef-4bce-9d8a-894d91bc6932' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your_daily_token' \
--data-raw '{"type": "mcp", "payload": {"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "self.get_device_status", "arguments": {}}}}'

接口2 设备状态查询API,支持查询设备是否在线

curl --location --request POST 'http://localhost:8007/api/devices/status' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your_daily_token' \
--data-raw '{
    "deviceIds": [
        "lichuang-dev@@@a0_85_e3_f4_49_34@@@aeebef32-f0ef-4bce-9d8a-894d91bc6932"
    ]
}'

About

小智AI的MQTT+UDP服务器,支持后端Websocket程序动态负载均衡

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%