diff --git a/src/onebot/main.ts b/src/onebot/main.ts index 3833f60a..88a142f7 100644 --- a/src/onebot/main.ts +++ b/src/onebot/main.ts @@ -99,7 +99,7 @@ export class NapCatOneBot11Adapter { if (ob11Config.reverseWs.enable) { ob11Config.reverseWs.urls.forEach(url => { this.networkManager.registerAdapter(new OB11ActiveWebSocketAdapter( - url, 5000, ob11Config.heartInterval, this.core, this + url, 5000, ob11Config.heartInterval, ob11Config.token, this.core, this )); }); } diff --git a/src/onebot/network/active-websocket.ts b/src/onebot/network/active-websocket.ts index 2ed2ebfc..34bc117e 100644 --- a/src/onebot/network/active-websocket.ts +++ b/src/onebot/network/active-websocket.ts @@ -16,9 +16,11 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter { private heartbeatTimer: NodeJS.Timeout | null = null; onebotContext: NapCatOneBot11Adapter; coreContext: NapCatCore; + token: string; - constructor(url: string, reconnectIntervalInMillis: number, heartbeatInterval: number, coreContext: NapCatCore, onebotContext: NapCatOneBot11Adapter) { + constructor(url: string, reconnectIntervalInMillis: number, heartbeatInterval: number, token:string, coreContext: NapCatCore, onebotContext: NapCatOneBot11Adapter) { this.url = url; + this.token = token; this.heartbeatInterval = heartbeatInterval; this.reconnectIntervalInMillis = reconnectIntervalInMillis; this.coreContext = coreContext; @@ -72,7 +74,14 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter { private async tryConnect() { while (!this.connection && !this.isClosed) { try { - this.connection = new NodeWebSocket(this.url); + this.connection = new NodeWebSocket(this.url, { + headers: { + 'X-Self-ID': this.coreContext.selfInfo.uin, + 'Authorization': `Bearer ${this.token}`, + 'x-client-role': 'Universal', // koishi-adapter-onebot 需要这个字段 + 'User-Agent': 'OneBot/11', + } + }); this.connection.on('message', (data) => { this.handleMessage(data); });