Socket.io-client: рдбреАрдмрдЧрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ XHR рдорддрджрд╛рди рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io-client

рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐:

  • [x] рдПрдХ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
  • [] рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░

рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдкрд░ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдорд░реНрдерд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд┐рдпрдорд┐рдд рдиреЛрдб.рдЬреЗрдПрд╕ рдРрдк рдкрд░ рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдХреЗрд╡рд▓ рддрднреА рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИ рдЬрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ ред рдореИрдВ рдЖрдИрдУрдПрд╕ 10.2 рдкрд░ react-native v0.43.1 рдФрд░ socket.io-client v1.7.3 рд╕рд╛рде рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ socket.io v1.7.2 рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ HTTP рдкреЛрд░реНрдЯ 1337 рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг (рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ)

рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдореЗрдВ socket.io-client рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдбреАрдмрдЧрд░ рд╕рдХреНрд╖рдо рдХрд┐рдП рдмрд┐рдирд╛ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдирд╛ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рддреЛ рддреНрд░реБрдЯрд┐ XHR: POLLING ERROR ред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ 'рд╡реЗрдмрд╕реЛрдХреЗрдЯ' рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рддреНрд░реБрдЯрд┐ WEBSOCKET ERROR ред рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдорд┐рд▓рддрд╛ рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдирд┐рдпрдорд┐рдд рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рдиред рдпрд╣ рд╕рдХреНрд╖рдо рдбреАрдмрдЧрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕реЗрдЯ рдЕрдк

  • рдУрдПрд╕: рдУрдПрд╕рдПрдХреНрд╕ рдПрд▓ рдХреИрдкрд┐рдЯрди 10.11.6
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд╡реЗрдмрдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред
  • рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдг: рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ

рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕, рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ, рд╕реБрдЭрд╛рд╡ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ)

рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХрдорд╛рддреНрд░ рдЕрдиреНрдп рдореБрджреНрджрд╛ # 1056 рдерд╛ рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпреЗ рдореБрджреНрджреЗ рдХрд┐рддрдиреЗ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдореИрдВрдиреЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдиреЛрдб.рдЬреЗрдПрд╕ рдРрдк рдкрд░ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдереАрдВ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд╣рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛:

{ Error: xhr poll error
    at XHR.Transport.onError (/path/to/root/node_modules/engine.io-client/lib/transport.js:64:13)
    at Request.<anonymous> (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:129:10)
    at Request.Emitter.emit (/path/to/root/node_modules/component-emitter/index.js:133:20)
    at Request.onError (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:307:8)
    at Timeout._onTimeout (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:254:18)
    at ontimeout (timers.js:365:14)
    at tryOnTimeout (timers.js:237:5)
    at Timer.listOnTimeout (timers.js:207:5) type: 'TransportError', description: 503 }

transports: ['websocket'] :

{ Error: websocket error
    at WS.Transport.onError (/path/to/root/node_modules/engine.io-client/lib/transport.js:64:13)
    at WebSocket.ws.onerror (/path/to/root/node_modules/engine.io-client/lib/transports/websocket.js:149:10)
    at WebSocket.onError (/path/to/root/node_modules/ws/lib/WebSocket.js:452:14)
    at emitOne (events.js:96:13)
    at WebSocket.emit (events.js:189:7)
    at ClientRequest.onerror (/path/to/root/node_modules/ws/lib/WebSocket.js:711:10)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:189:7)
    at TLSSocket.socketErrorListener (_http_client.js:358:9)
    at emitOne (events.js:96:13)
  type: 'TransportError',
  description: 
   { Error: socket hang up
       at TLSSocket.onHangUp (_tls_wrap.js:1117:19)
       at Object.onceWrapper (events.js:291:19)
       at emitNone (events.js:91:20)
       at TLSSocket.emit (events.js:186:7)
       at endReadableNT (_stream_readable.js:974:12)
       at _combinedTickCallback (internal/process/next_tick.js:74:11)
       at process._tickCallback (internal/process/next_tick.js:98:9)
     code: 'ECONNRESET',
     type: 'error',
     target: 
      WebSocket {
        domain: null,
        _events: [Object],
        _eventsCount: 4,
        _maxListeners: undefined,
        _socket: null,
        _ultron: null,
        _closeReceived: false,
        bytesReceived: 0,
        readyState: 0,
        supports: [Object],
        extensions: {},
        _binaryType: 'nodebuffer',
        _isServer: false,
        url: 'wss://SERVER_IP:1337/socket.io/?EIO=3&transport=websocket',
        protocolVersion: 13 } } }

рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ, socket.io рдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ, рдЖрдИрдПрд╕рдкреА рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реАрдкреАрдПрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдирдЬрд╛рди рд╣реВрдБред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдПрдХ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реБрдЖред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реНрдпрд╕реНрдд рд╕рдкреНрддрд╛рд╣ рдерд╛ рдФрд░ рд╡рд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдереАред

рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ opts.transports рдХреЛ рдХреЗрд╡рд▓ websocket рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

io.connect(url, { transports: ['websocket'] }); // default is ['polling', 'websocket']

рдХреЛрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╕реЙрдХреЗрдЯ рдФрд░ рдПрдХреНрд╢рди рдмрд╛рдзреНрдпрдХрд╛рд░реА рддрд░реНрдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЖрдкрдХрд╛ рд╕реЙрдХреЗрдЯ рд▓реЙрдЬрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВред

рд╕рднреА 30 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрджреНрдпрддрди : рдЖрдЦрд┐рд░рдХрд╛рд░ рдореЗрд░реЗ рдЖрдИрдлреЛрди рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдПрдХреНрд╕рдПрдЪрдЖрд░ рдорддрджрд╛рди рддреНрд░реБрдЯрд┐ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрднреА рднреА рдПрдХ рдирд┐рдпрдорд┐рдд рдиреЛрдб рдРрдк рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдиреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ socket.io рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдиреЛрдб рдРрдк рдореЗрдВ socket.io-client рдЙрд╕реА 503 xhr рдкреЛрд▓ рддреНрд░реБрдЯрд┐ рдХреЛ рдКрдкрд░ рдлреЗрдВрдХрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд▓реВрдкрдмреИрдХ рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрддреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ 1.7.3 рджреЛрдиреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг socket.io рдФрд░ socket.io-client рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

l рдиреЛрдб рд╕реЗ рдЪрд▓рддреЗ рд╕рдордп рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 2.0.1 (рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░) рдореЗрдВ рднреА рджреЗрдЦреЗрдВред

рдореИрдВрдиреЗ рдПрдХ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реБрдЖред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реНрдпрд╕реНрдд рд╕рдкреНрддрд╛рд╣ рдерд╛ рдФрд░ рд╡рд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдереАред

рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ opts.transports рдХреЛ рдХреЗрд╡рд▓ websocket рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

io.connect(url, { transports: ['websocket'] }); // default is ['polling', 'websocket']

рдХреЛрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╕реЙрдХреЗрдЯ рдФрд░ рдПрдХреНрд╢рди рдмрд╛рдзреНрдпрдХрд╛рд░реА рддрд░реНрдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЖрдкрдХрд╛ рд╕реЙрдХреЗрдЯ рд▓реЙрдЬрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВред

рдореИрдВ рд╣рдо рдкрд░рд┐рд╡рд╣рди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░ 1.7.4 рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдм рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ 2.0.1 рд╕реЗ 1.7.4 рддрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдиреАрдЪреЗ рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд╛рдкрд╕ 2.0.1 рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ (рд▓рдЧрднрдЧ) рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

io(`localhost:8080`, {
    transports: [ 'websocket' ],
    upgrade: false
});

рдЕрдм рдореЗрд░реА рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдм рд╡рд░реНрдХрд░ рд╕реНрдХреЛрдк рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд▓реА рд╣реИ рдФрд░ рдпрд╣рд╛рдВ engine.io-client рдкрд░ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИ https://github.com/socketio/engine.io-client/issues/569

рдХреНрдпрд╛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА рдЧрдИ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдбреАрдмрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? ( DEBUG=engine* )

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЬрд┐рд╕реЗ https://github.com/socketio/socket.io-client/issues/1114 рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@darrachequesne рддреЛ рдореИрдВ рдмрд╕ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдШрдЯрдХ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ред рд╡рд╣рд╛рдВ рдореЗрд░реА рдЧрд▓рддреА... рдорддрджрд╛рди рдкрд░рд┐рд╡рд╣рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рдореБрджреНрджрд╛ рдерд╛ рд╡рд╣ рд╕реНрдерд╛рдиреАрдп рджреЗрд╡ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдерд╛ред рдореБрдЭреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП socket.io config рдореЗрдВ rejectUnauthorized: process.env.NODE_ENV === 'production' рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдЕрдиреНрдпрдерд╛ 503 рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗрдм рд╡рд░реНрдХрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред рд╕реЙрдХреЗрдЯрд┐рдпреЛ/рдЗрдВрдЬрди.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ#569

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ

require('socket.io-client')('http://localhost', {
  rejectUnauthorized:   false,
})

рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛
----- рдореВрд▓ рд╕рдВрджреЗрд╢-----
рд╕реЗ: рдЬрд╝реЗрдЯреНрд╕рд┐рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛: "socketio/socket.io-client" [email protected]
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐: Wangzhiqiang [email protected] , рдЯрд┐рдкреНрдкрдгреА рдЯрд┐рдкреНрдкрдгреА @noreply.github.com
рд╡рд┐рд╖рдп: рдкреБрди: [socketio/socket.io-client] рдбреАрдмрдЧрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ XHR рдорддрджрд╛рди рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ (#1097)
рджрд┐рдирд╛рдВрдХ: 16:22, рдордИ 20, 2017

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ('рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ') ('http://localhost', {
рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЕрдирдзрд┐рдХреГрдд: рдЭреВрдард╛,
})

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред рдлрд┐рд░ рдореИрдВ рдЕрдкрдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ

require('socket.io-client')('wss://myserver:port/ws', { transports: ['websocket'], rejectUnauthorized: false });

рд▓реЗрдХрд┐рди рдЕрдм, рдореБрдЭреЗ 404 рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИред рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЕрдиреБрд░реЛрдз url рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд /socket.io/ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

 { Error: unexpected server response (404)
       at ClientRequest._req.on (/Users/chris/Projects/nationsky/mgmt-server/backend/node_modules/ws/lib/WebSocket.js:650:26)
       at emitOne (events.js:115:13)
       at ClientRequest.emit (events.js:210:7)
       at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:564:21)
       at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
       at TLSSocket.socketOnData (_http_client.js:453:20)
       at emitOne (events.js:115:13)
       at TLSSocket.emit (events.js:210:7)
       at addChunk (_stream_readable.js:252:12)
       at readableAddChunk (_stream_readable.js:239:11)
     type: 'error',
     target:
      WebSocket {
        domain: null,
        _events: [Object],
        _eventsCount: 4,
        _maxListeners: undefined,
        readyState: 0,
        bytesReceived: 0,
        extensions: {},
        protocol: '',
        _binaryType: 'arraybuffer',
        _finalize: [Function: bound finalize],
        _finalizeCalled: false,
        _closeMessage: null,
        _closeTimer: null,
        _closeCode: null,
        _receiver: null,
        _sender: null,
        _socket: null,
        _ultron: null,
        protocolVersion: 13,
        _isServer: false,
        url: 'wss://myserver:port/socket.io/?access_token=HnbtDUEWu1i1HVrAn-DO9YOL6GZxoittWAf8Sz_RR0s&EIO=3&transport=websocket',
        _req: [Object] } } }

рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рднрд▓реЗ рд╣реА рдбрд┐рдмрдЧрд░ рдореМрдЬреВрдж рди рд╣реЛ

рдирдорд╕реНрддреЗ! рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдЬрдм рдореИрдВ рдПрдХ Node.js рдРрдк рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:

const socket = require('socket.io-client')('https://domain.com')

рдЬреЛ рд▓реЙрдЧ рдореБрдЭреЗ DEBUG=engine* npm run dev рдЪрд▓ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

asciicast

engine.io-client:socket creating transport "polling" +2s
engine.io-client:polling polling +1ms
engine.io-client:polling-xhr xhr poll +0ms
engine.io-client:polling-xhr xhr open GET: https://domain.com/socket.io/?EIO=3&transport=polling&t=LzBM71r&b64=1 +0ms
engine.io-client:polling-xhr xhr data null +0ms
engine.io-client:socket setting transport polling +1ms
engine.io-client:socket socket error {"type":"TransportError","description":503} +7ms
engine.io-client:socket socket close with reason: "transport error" +0ms
engine.io-client:polling transport not open - deferring close +0ms

рдЬрдм рдореИрдВрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ https://domain.com/socket.io/socket.io.js рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ io('https://domain.com') рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓ рджрд┐рдпрд╛:

const socket = require('socket.io-client')('https://domain.com', { rejectUnauthorized: false })

рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ Let's Encrypt рд╕реЗ рд╡реИрдз рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИрдВ, рдпрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ? рд╡реИрд╕реЗ рднреА .. рдореИрдВрдиреЗ transports рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рднреА) websocket рд╕реЗ рдЕрдиреНрдп рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреЛрдб рдерд╛:

const socket = require('socket.io-client')('https://domain.com', {
  transports: ['websocket'],
  rejectUnauthorized: false
})

рдзрдиреНрдпрд╡рд╛рдж @ibrahimduran рдФрд░ @SupremeTechnopriest : рдореБрд╕реНрдХрд╛рди:

рдЕрдЧрд░ рдореИрдВрдиреЗ рдЯрд╛рд░реНрдЬрд╝рди рдХреА рддрд░рд╣ рд▓рд┐рдЦрд╛ рд╣реЛ рддреЛ рдорд╛рдлрд╝реА рдЪрд╛рд╣рддрд╛ рд╣реВрдБ :sweat_smile: рдореИрдВ рдЕрдкрдиреА рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ 2 рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

   let socketClient = socketIOClient.connect(`http://localhost:3001`,{ // [1] Important as fuck 
      reconnectionDelay: 1000,
      reconnection:true,
      reconnectionAttempts: 10,
      transports: ['websocket'],
      agent: false, // [2] Please don't set this to true
      upgrade: false,
      rejectUnauthorized: false
   });

[1] рдпрджрд┐ рдЖрдк рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ http рдпрд╛ https рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ https рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛ рдпрджрд┐ рдЖрдк url рдХреЗ рдареАрдХ рдмрд╛рдж рдкреЛрд░реНрдЯ рдХреЛ "url. com:port " рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 80 рдпрд╛ 443 рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдЙрддреНрддрд░ рджреЗрдЦреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рд╣реИред рдореИрдВрдиреЗ рдХреЛрдб рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдкреЛрд░реНрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

[2] рдФрд░ рд╕рд╛рде рд╣реА, рдореИрдВрдиреЗ рдПрдЬреЗрдВрдЯ рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдПрдХ ws рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереА, рдпрд╣ рдмрд╕ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред рдПрдЬреЗрдВрдЯ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИред

@teja42 рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ 2 рджрд┐рдиреЛрдВ рддрдХ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓рд┐рдВрдЧ рдореБрджреНрджрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ !

рдЬреИрд╕рд╛ рдХрд┐ @SupremeTechnopriest рдиреЗ рдмрддрд╛рдпрд╛, рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рд╣реИ рдФрд░ 2.0.1 рд╕реЗ 1.7.4 рддрдХ рдбрд╛рдЙрдирдЧреНрд░реЗрдбрд┐рдВрдЧ рддрдп рдХреА рдЧрдИ рд╣реИ рдФрд░ рд╕рдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдзрдиреНрдпрд╡рд╛рдж !

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдЕрднреА рднреА рдПрдВрдбреНрд░реЙрдЗрдб 8.1 рдкрд░ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ :(

рдЫрджреНрдо рдХреЛрдб:
```
this.socket = io.connect ('https://xxxxxxxxxxxxxx', {
рдкрде: '/ рд╕реЙрдХреЗрдЯрдЪреИрдирд▓',
рдкреБрди: рд╕рдВрдпреЛрдЬрдирд╡рд┐рд▓рдВрдм: 1000,
рдкреБрди: рдХрдиреЗрдХреНрд╢рди: рд╕рдЪ,
рдкреБрди: рд╕рдВрдпреЛрдЬрди рдкреНрд░рдпрд╛рд╕: 10,
рдкрд░рд┐рд╡рд╣рди: ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ'],
рдПрдЬреЗрдВрдЯ: рдЭреВрдард╛,
рдЕрдкрдЧреНрд░реЗрдб: рдЭреВрдард╛,
рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЕрдирдзрд┐рдХреГрдд: рдЭреВрдард╛
});

this.socket.on('connect', () => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрдЯреЗрдб!')
})
this.socket.on('connect_error', (рдЧрд▓рддреА) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрдЯреЗрдб рдПрд░рд░ ->' + рдЗрд░реЗрдЯ);
})

```
рдПрдкреНрд▓рд┐рдХреЗрд╢рди 'connection_error' рдИрд╡реЗрдВрдЯ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ "рддреНрд░реБрдЯрд┐: websocket рддреНрд░реБрдЯрд┐" рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ

"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓": "0.57.4",
"рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ": "1.7.4"

рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдПрдкреНрд▓рд┐рдХреЗрд╢рди 'connection_error' рдИрд╡реЗрдВрдЯ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ "рддреНрд░реБрдЯрд┐: websocket рддреНрд░реБрдЯрд┐" рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ

рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛

    "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
    "engine.io-client": "~3.3.2",
    "socket.io-client": "2.1.1",

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдЙрд╕рдХреЗ рд▓рд┐рдП +1

рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдХреЗ origins рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереАред
рддреЛ рдЕрдм рдореВрд▓ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ?

рдирдорд╕реНрддреЗред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдиреЛрдб рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП PM2 рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд░реЗрдбрд┐рд╕ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

const redis = require('socket.io-redis') 
io.adapter(redis(config.redis))

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди socket.io-client рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ:

{ Error: xhr post error
    at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
    at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:111:10)
    at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
    at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
    at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
    at listOnTimeout (timers.js:327:15)
    at processTimers (timers.js:271:5) type: 'TransportError', description: 400 }
{ Error: xhr poll error
    at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
    at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:130:10)
    at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
    at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
    at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
    at listOnTimeout (timers.js:327:15)
    at processTimers (timers.js:271:5) type: 'TransportError', description: 400 }

рдпрджрд┐ рдореИрдВ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдкрд░рд┐рд╡рд╣рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

var socket = require("socket.io-client")("http://localhost:8080", { transports: ['websocket'] });

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рдХрд┐ рдпрджрд┐ xhr рдорддрджрд╛рди рдкрд░рд┐рд╡рд╣рди рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ websocket рдкрд░рд┐рд╡рд╣рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП socket.io-client рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

рдЬреАрдердм рд╕реЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЗрд╕ рддрд░рд╣, рдЖрд░рдПрди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛:

npm i socketio/engine.io-client#3.3.2 -S

рдЪрд┐рдпрд░реНрд╕

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЧреБрдЧрд▓ рдХрд░рдХреЗ рдпрд╣рд╛рдВ рдЖрдпрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рдерд╛ (рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдерд╛)ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ :)

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ

require('socket.io-client')('http://localhost', {
  rejectUnauthorized:   false,
})

рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдиреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рдереАрдВ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ

require('socket.io-client')('http://localhost', {
  rejectUnauthorized:   false,
})

рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдиреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рдереАрдВ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╣реИрд▓реЛ, рдореИрдВрдиреЗ рдЕрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЖрдк socket.io рдФрд░ socket.io-client рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ

require('socket.io-client')('http://localhost', {
  rejectUnauthorized:   false,
})

рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдиреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рдереАрдВ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╣реИрд▓реЛ, рдореИрдВрдиреЗ рдЕрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЖрдк socket.io рдФрд░ socket.io-client рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2.3.0 рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдФрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдЕрднреА рднреА рдПрдВрдбреНрд░реЙрдЗрдб 8.1 рдкрд░ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ :(

рдЫрджреНрдо рдХреЛрдб:

this.socket = io.connect('https://xxxxxxxxxxxxxx', { 
     path: '/socketchannel', 
     reconnectionDelay: 1000,
     reconnection:true,
     reconnectionAttempts: 10,
     transports: ['websocket'],
     agent: false, 
     upgrade: false,
     rejectUnauthorized: false
   });

this.socket.on('connect', () => {
     console.log('socket connected!')
   })
this.socket.on('connect_error', (err) => {
     console.log('socket connected error --> ' + err);
   })

рдПрдкреНрд▓рд┐рдХреЗрд╢рди 'connection_error' рдИрд╡реЗрдВрдЯ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ "рддреНрд░реБрдЯрд┐: websocket рддреНрд░реБрдЯрд┐" рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ

"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓": "0.57.4",
"рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ": "1.7.4"

рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рд╡рд╣реА рдореБрджреНрджрд╛редрдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рддреЗ рд╣реИрдВ?

рдореИрдВ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

david-fong picture david-fong  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

XMLHttpRequest рдкрд░ 'http: // localhost: 8080 / socket.io /? EIO = 3 рдФрд░ рдкрд░рд┐рд╡рд╣рди = рдорддрджрд╛рди рдФрд░ t = MgBuvgw' рдХреЛ рдореВрд▓ 'http: // localhost: 4200' рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ CorS рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: 'Access-Control-' рдЕрдиреБрдорддрд┐-рдкреНрд░рд╛рдкреНрдд 'рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдкрд░ рдореМрдЬреВрдж рд╣реИред
imarun577 picture imarun577  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ledmago picture ledmago  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

BorntraegerMarc picture BorntraegerMarc  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahadcove picture ahadcove  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ