Skip to content

反向 WebSocket

反向模式下,外部服务监听 WebSocket 地址,萌卡 NT 作为客户端主动连接。这个入口在管理后台的「插件 → 插件对接」中创建。

启动外部服务

js
import { createReverseAPI } from './reverse-sdk.js'

const api = createReverseAPI({
  host: '0.0.0.0',
  port: 3002,
  path: '/',
  token: 'TOKEN',
})

api.on('group_message', event => {
  console.log(event.group_id, event.alt_message)
})

await api.listen()
await api.waitForConnection()
字段必填默认值说明
host0.0.0.0外部服务监听地址
port3002外部服务监听端口
path/WebSocket 路径
token与框架后台一致的服务令牌

后台配置

点击「添加服务」,选择「反向 WS」,填写:

字段示例说明
WebSocket 地址ws://127.0.0.1:3002/必须使用 ws://wss://
服务令牌TOKEN与外部服务配置一致
重连间隔5取值 1 到 300 秒
管理端地址http://127.0.0.1:8088可选,只用于管理入口和 SSO

萌卡 NT 会在断线后按重连间隔再次连接。反向 SDK 同一时间只接受一个框架连接。

连接认证

萌卡 NT 发起握手时携带:

请求头内容
AuthorizationBearer TOKEN
X-Mengka-Token服务令牌
X-Mengka-Service服务名称

SDK 校验令牌后接受连接,随后框架发送:

json
{
  "type": "ready",
  "service": "service-name",
  "mode": "reverse"
}

插件服务不携带服务级 node_id。API 和事件帧格式与正向模式一致,反向连接不会绕过 action 授权。

等待与关闭

waitForConnection(timeoutMs) 在收到 ready 帧后返回。传入 0 或省略参数时不设置等待超时。停止服务时调用 await api.close()

萌卡 NT · 连接想法,也连接你我。