javascript - Node.js WebSocket 错误 : read ECONNRESET after some reconnects

标签 javascript node.js websocket

我的 node.js 客户端应用连接到第三方 Websocket API,使用 ws npm 包连续发送/接收数据。有时由于短暂的服务中断(至少我相信这是原因),服务器关闭了连接,我的应用程序需要重新建立连接。

我在这篇文章中找到了一个很好的解决方案,它适用于一些重新连接,但随后我的应用程序崩溃了: (Node-js: Not receiving events after websocket reconnect 用户 Yury Fedorov):

const WS = require('ws');
var BFX = new WS('bfxs://api.uri.com/ws/2');

function createWebsocket() {
    const websocket = new BFX().ws(2, opts);
    websocket.on('open', /* code */);
    websocket.open();
}

并在 on('close') 中调用它:

websocket.on('close', ()=>{
     setTimeout(createWebsocket, 10000);
});

我得到的错误是:Error: read ECONNRESET

我安装了 npm 包 longjohn 以获得更长的堆栈跟踪,但我无法解释更长的堆栈跟踪:

    ________________________________________________________
        Error: read ECONNRESET
            at _errnoException (util.js:1022:11)
            at TLSWrap.onread (net.js:615:25)`
    ____________________________________________
        at TLSSocket.Readable.on (_stream_readable.js:772:35)
        at Ultron.on (/home/user/core/node_modules/ultron/index.js:42:11)
        at WebSocket.setSocket (/home/user/core/node_modules/ws/lib/WebSocket.js:131:18)
        at ClientRequest._req.on (/home/user/core/node_modules/ws/lib/WebSocket.js:715:10)
        at emitThree (events.js:136:13)
        at ClientRequest.emit (events.js:217:7)
        at TLSSocket.socketOnData (_http_client.js:472:11)
        at emitOne (events.js:116:13)
        at TLSSocket.emit (events.js:211:7)
        at addChunk (_stream_readable.js:263:12)
        at readableAddChunk (_stream_readable.js:250:11)
        at TLSSocket.Readable.push (_stream_readable.js:208:10)
        at TLSWrap.onread (net.js:594:20)
    ____________________________________________
        at WebSocket.initAsClient (/home/user/core/node_modules/ws/lib/WebSocket.js:657:13)
        at new WebSocket (/home/user/core/node_modules/ws/lib/WebSocket.js:72:20)
        at startWebsocket (/home/user/core/myApp.js:76:11)
        at Timeout.<anonymous> (/home/user/core/myApp.js:117:31)
        at ontimeout (timers.js:475:11)
        at tryOnTimeout (timers.js:310:5)
        at Timer.listOnTimeout (timers.js:270:5)
        ____________________________________________
        at WebSocket.bfx.onclose (/home/user/core/myApp.js:117:9)
        at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
        at emitTwo (events.js:126:13)
        at WebSocket.emit (events.js:214:7)
        at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
        at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
        at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
        at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
        at emitNone (events.js:111:20)
        at TLSSocket.emit (events.js:208:7)
        at endReadableNT (_stream_readable.js:1055:12)
        at _combinedTickCallback (internal/process/next_tick.js:138:11)
        at process._tickCallback (internal/process/next_tick.js:180:9)
    ____________________________________________
        at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
        at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
        at startWebsocket (/home/user/core/myApp.js:115:14)
        at Timeout.<anonymous> (/home/user/core/myApp.js:117:31)
        at ontimeout (timers.js:475:11)
        at tryOnTimeout (timers.js:310:5)
        at Timer.listOnTimeout (timers.js:270:5)
    ____________________________________________
        at WebSocket.bfx.onclose (/home/user/core/myApp.js:117:9)
        at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
        at emitTwo (events.js:126:13)
        at WebSocket.emit (events.js:214:7)
        at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
        at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
        at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
        at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
        at emitNone (events.js:111:20)
        at TLSSocket.emit (events.js:208:7)
        at endReadableNT (_stream_readable.js:1055:12)
        at _combinedTickCallback (internal/process/next_tick.js:138:11)
        at process._tickCallback (internal/process/next_tick.js:180:9)
    ____________________________________________
        at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
        at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
        at startWebsocket (/home/user/core/myApp.js:115:14)
        at Object.init (/home/user/core/myApp.js:212:3)
        at main (/home/user/core/core_main.js:143:16)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:188:7)

 - What is causing the crash? 
 - Can I catch the error somewhere and react
   to it better? 
 - How can I debug this better?
 - Thank you!

UPDATE: 
user keja reminded me to add `websocket.on('error', (err) => console.log('error:', err));` to my listeners. The result is a similar but longer stack trace of the error message:

ON ERROR:
{ Error: read ECONNRESET
    at _errnoException (util.js:1022:11)
    at TLSWrap.onread (net.js:615:25)
____________________________________________
    at startWebsocket (/home/user/core/myApp.js:136:6)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitNone (events.js:111:20)
    at TLSSocket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitNone (events.js:111:20)
    at TLSSocket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitNone (events.js:111:20)
    at TLSSocket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Timeout.<anonymous> (/home/user/core/myApp.js:120:31)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
____________________________________________
    at WebSocket.bfx.onclose (/home/user/core/myApp.js:120:9)
    at WebSocket.onClose (/home/user/core/node_modules/ws/lib/EventTarget.js:103:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/home/user/core/node_modules/ws/lib/WebSocket.js:211:10)
    at _receiver.cleanup (/home/user/core/node_modules/ws/lib/WebSocket.js:199:39)
    at Receiver.cleanup (/home/user/core/node_modules/ws/lib/Receiver.js:520:15)
    at WebSocket.finalize (/home/user/core/node_modules/ws/lib/WebSocket.js:199:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
____________________________________________
    at WebSocket.addEventListener (/home/user/core/node_modules/ws/lib/EventTarget.js:121:12)
    at WebSocket.set (/home/user/core/node_modules/ws/lib/WebSocket.js:434:12)
    at startWebsocket (/home/user/core/myApp.js:118:14)
    at Object.init (/home/user/core/myApp.js:224:3)
    at main (/home/user/core/core_main.js:143:16)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }

最佳答案

根据documentation有一个错误事件你可以监听

所以你可以尝试类似的东西

websocket.on('error', (err) => console.log('error:', err));

也许这可以为您指出错误的方向。

关于javascript - Node.js WebSocket 错误 : read ECONNRESET after some reconnects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49129215/

相关文章:

javascript - 使用鼠标单击获取 X/Y 坐标

javascript - 在 Javascript 中验证密码匹配

python - PyQt5 中的 WebSocket 服务器,显然是正确的,但我无法连接

websocket - 使用 Dart WebSocket 服务器支持 WebSocket 关闭原因

sockets - 有人可以澄清 RTCdatachannel 将如何工作吗?他们的要求是什么?

javascript - ajax 响应字符串的 JSON 解析错误

javascript - JQuery Ajax提交功能添加验证

javascript - 如何找出 Node 进程中的内存泄漏

javascript - Babel typescript 语句中出现意外标记 '?'

node.js - Node.js 中的 Newbey 等待方式。为什么它不起作用?