在运行我的NodeJS应用程序20分钟后,我遇到了这个错误,之后一直出现这个错误。它托管在AWS (EC2)上,我搜索getaddrinfo EAI_AGAIN错误,它可能是由DNS问题引起的,但我不知道如何解决它。
WebSocket error: [object Object]
ErrorEvent {
target:
WebSocket {
_events:
[Object: null prototype] {
message: [Function: incoming],
disconnect: [Function],
close: [Function: close],
error: [Function] },
_eventsCount: 4,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_closeCode: 1006,
_closeFrameReceived: false,
_closeFrameSent: false,
_closeMessage: '',
_closeTimer: null,
_extensions: {},
_protocol: '',
_readyState: 2,
_receiver: null,
_sender: null,
_socket: null,
_bufferedAmount: 0,
_isServer: false,
_redirects: 0,
_url: 'wss://stream.binance.com:9443/ws/!bookTicker',
_req: null },
type: 'error',
message:
'getaddrinfo EAI_AGAIN stream.binance.com stream.binance.com:9443',
error:
{ Error: getaddrinfo EAI_AGAIN stream.binance.com stream.binance.com:9443
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
errno: 'EAI_AGAIN',
code: 'EAI_AGAIN',
syscall: 'getaddrinfo',
hostname: 'stream.binance.com',
host: 'stream.binance.com',
port: '9443' } }发布于 2022-01-24 12:54:39
对于未来的读者来说,问题是由于Binance的web套接字服务器需要在10分钟内响应ping帧,否则连接将被断开,所以我得到1006错误,我用这样的乒乓框架修复了这个问题:ws.pong();,否则您将得到1008错误代码。
示例:
const ws = new WebSocket('wss://stream.binance.com:9443/ws/!bookTicker');
ws.onopen = function(message) {
console.log("Connected: ");
ws.pong();
}
ws.on("ping", function(message) {
ws.pong();
}); https://stackoverflow.com/questions/70786685
复制相似问题