рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдкрд░ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдорд░реНрдерд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд┐рдпрдорд┐рдд рдиреЛрдб.рдЬреЗрдПрд╕ рдРрдк рдкрд░ рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдХреЗрд╡рд▓ рддрднреА рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИ рдЬрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ ред рдореИрдВ рдЖрдИрдУрдПрд╕ 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
ред рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдорд┐рд▓рддрд╛ рд╣реИред
рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдирд┐рдпрдорд┐рдд рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рдиред рдпрд╣ рд╕рдХреНрд╖рдо рдбреАрдмрдЧрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХрдорд╛рддреНрд░ рдЕрдиреНрдп рдореБрджреНрджрд╛ # 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 рдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ, рдЖрдИрдПрд╕рдкреА рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реАрдкреАрдПрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдирдЬрд╛рди рд╣реВрдБред
рдЕрджреНрдпрддрди : рдЖрдЦрд┐рд░рдХрд╛рд░ рдореЗрд░реЗ рдЖрдИрдлреЛрди рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдПрдХреНрд╕рдПрдЪрдЖрд░ рдорддрджрд╛рди рддреНрд░реБрдЯрд┐ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрднреА рднреА рдПрдХ рдирд┐рдпрдорд┐рдд рдиреЛрдб рдРрдк рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдиреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ 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
рдЪрд▓ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:
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"рдХреЛрдИ рд╕реБрдЭрд╛рд╡?
рд╡рд╣реА рдореБрджреНрджрд╛редрдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рддреЗ рд╣реИрдВ?
рдореИрдВ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реВрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдПрдХ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реБрдЖред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реНрдпрд╕реНрдд рд╕рдкреНрддрд╛рд╣ рдерд╛ рдФрд░ рд╡рд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдереАред
рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ
opts.transports
рдХреЛ рдХреЗрд╡рд▓websocket
рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:рдХреЛрдб рдХреЛ рджреЛрдмрд╛рд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╕реЙрдХреЗрдЯ рдФрд░ рдПрдХреНрд╢рди рдмрд╛рдзреНрдпрдХрд╛рд░реА рддрд░реНрдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЖрдкрдХрд╛ рд╕реЙрдХреЗрдЯ рд▓реЙрдЬрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВред