Skip to content

正向 WebSocket

正向模式下,萌卡 NT 监听一个 WebSocket 端口,外部服务作为客户端连接框架。这个入口在管理后台的「插件 → 插件对接」中创建,不依赖官网账号或插件市场。

后台配置

点击「添加服务」,选择「正向 WS」,填写服务名称、监听端口和服务令牌。服务不绑定固定节点,普通账号 action 由框架按照 self_id + client_type 路由到账号自己的登录节点。

text
ws://HOST:PORT/

同一端口只能由一个服务使用。跨主机连接时,只开放实际需要的监听端口,并通过防火墙限制来源。

Node.js SDK

js
const api = createAPI({
  host: '127.0.0.1',
  port: 3001,
  token: 'TOKEN',
  name: 'plugin-name',
  version: '1.0.0',
  author: 'developer',
})

api.on('friend_message', handleFriendMessage)
await api.connect()
字段必填默认值说明
host127.0.0.1萌卡 NT 所在主机
port3001后台配置的监听端口
token服务令牌
name连接列表显示名称
version外部服务版本
author开发者名称

正向 SDK 不主动重连。需要持续运行的服务应在断开后按自身策略重新调用 connect(),但不能自动重放可能产生副作用的 action。

原始认证帧

使用其他语言实现客户端时,连接建立后 10 秒内发送:

json
{
  "type": "auth",
  "token": "TOKEN",
  "name": "plugin-name",
  "version": "1.0.0",
  "author": "developer",
  "permissions": {
    "group_message": true,
    "friend_message": true,
    "group_event": true,
    "friend_event": true,
    "bot_offline": true
  }
}

认证成功返回 { "type": "auth_ok" }。认证失败返回 auth_failed 并断开连接。后续帧见通信协议

外部管理端

创建或编辑手动服务时,可以填写 http://https:// 管理端基础地址。填写后,服务卡片显示「进入管理端」,框架会为已登录的本地管理员发起一次性 SSO 跳转。

管理端地址只用于入口和 SSO,不替代 WebSocket 服务令牌。插件必须验证一次性授权码,不能解析框架 Cookie,也不能把服务令牌写进浏览器页面。

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