From 7412a073c3d7f37360955ba90de60d9c757481fe Mon Sep 17 00:00:00 2001 From: ropoctl Date: Sat, 25 Mar 2023 09:10:35 -0700 Subject: [PATCH 1/2] Catch error events on WebSocket connection Event handler on WebSocket for 'error' event needs to be set up a bit earlier. node:events:368 throw er; // Unhandled 'error' event ^ Error: Unexpected server response: 503 at ClientRequest. (/node-chatgpt-api/node_modules/ws/lib/websocket.js:888:7) at ClientRequest.emit (node:events:390:28) at HTTPParser.parserOnIncomingClient (node:_http_client:623:27) at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17) at TLSSocket.socketOnData (node:_http_client:487:22) at TLSSocket.emit (node:events:390:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at TLSSocket.Readable.push (node:internal/streams/readable:228:10) at TLSWrap.onStreamRead (node:internal/stream_base_commons:199:23) Emitted 'error' event on WebSocket instance at: at emitErrorAndClose (/node-chatgpt-api/node_modules/ws/lib/websocket.js:1008:13) at processTicksAndRejections (node:internal/process/task_queues:83:21) --- src/BingAIClient.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/BingAIClient.js b/src/BingAIClient.js index 6aaef643..f4badd5e 100644 --- a/src/BingAIClient.js +++ b/src/BingAIClient.js @@ -77,7 +77,7 @@ export default class BingAIClient { } async createWebSocketConnection() { - return new Promise((resolve) => { + return new Promise((resolve, reject) => { let agent; if (this.options.proxy) { agent = new HttpsProxyAgent(this.options.proxy); @@ -85,6 +85,8 @@ export default class BingAIClient { const ws = new WebSocket('wss://sydney.bing.com/sydney/ChatHub', { agent }); + ws.on('error', err => reject(err); + ws.on('open', () => { if (this.debug) { console.debug('performing handshake'); From 2bf28e0c203b5b81cd730b10880202cb0b556cc9 Mon Sep 17 00:00:00 2001 From: ropoctl Date: Sat, 25 Mar 2023 09:20:58 -0700 Subject: [PATCH 2/2] Update BingAIClient.js --- src/BingAIClient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BingAIClient.js b/src/BingAIClient.js index f4badd5e..266660c4 100644 --- a/src/BingAIClient.js +++ b/src/BingAIClient.js @@ -85,7 +85,7 @@ export default class BingAIClient { const ws = new WebSocket('wss://sydney.bing.com/sydney/ChatHub', { agent }); - ws.on('error', err => reject(err); + ws.on('error', err => reject(err)); ws.on('open', () => { if (this.debug) {