首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解决getaddrinfo EAI_AGAIN错误

无法解决getaddrinfo EAI_AGAIN错误
EN

Stack Overflow用户
提问于 2022-01-20 12:57:15
回答 1查看 4.4K关注 0票数 1

在运行我的NodeJS应用程序20分钟后,我遇到了这个错误,之后一直出现这个错误。它托管在AWS (EC2)上,我搜索getaddrinfo EAI_AGAIN错误,它可能是由DNS问题引起的,但我不知道如何解决它。

代码语言:javascript
复制
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' } }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-24 12:54:39

对于未来的读者来说,问题是由于Binance的web套接字服务器需要在10分钟内响应ping帧,否则连接将被断开,所以我得到1006错误,我用这样的乒乓框架修复了这个问题:ws.pong();,否则您将得到1008错误代码。

示例:

代码语言:javascript
复制
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();
}); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70786685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档