Socket.io-client: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдХреНрддреВре░ 2018  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io-client

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

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

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

I can't connect via socket io to my server, it times out. рдореИрдВ рд╕реЙрдХреЗрдЯ рдЖрдИрдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

Steps to reproduce (if the current behaviour is a bug) рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо (рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ)

In react-native: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдореЗрдВ:

import io from 'socket.io-client';


const BACKEND = 'my socketio server url'

const sock = io(BACKEND, { transports: ['websocket'], forceNew: true });
sock.on('connected', () => {
  debugger;
})

The debug logs look like: рдбреАрдмрдЧ рд▓реЙрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

socket.io-client:url parse <my url> +0ms
browser.js:133 socket.io-client ignoring socket cache for <my url> +0ms
browser.js:133 socket.io-client:manager readyState closed +0ms
browser.js:133 socket.io-client:manager opening <my url> +1ms
browser.js:133 engine.io-client:socket creating transport "websocket" +0ms
browser.js:133 engine.io-client:socket setting transport websocket +3ms
browser.js:133 socket.io-client:manager connect attempt will timeout after 20000 +6ms
browser.js:133 socket.io-client:manager readyState opening +2ms
socket.io-client:manager connect attempt timed out after 20000 +20s
browser.js:133 engine.io-client:socket socket close with reason: "forced close" +20s
browser.js:133 engine.io-client:socket socket closing - telling transport to close +2ms
browser.js:133 socket.io-client:manager connect_error +3ms
browser.js:133 socket.io-client:manager cleanup +1ms
browser.js:133 socket.io-client:manager will wait 899ms before reconnect attempt +1ms
browser.js:133 socket.io-client:manager attempting reconnect +912ms

Note : the best way (and by that we mean the only way ) to get a quick answer is to provide a failing test case by forking the following fiddle . рдиреЛрдЯ : рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ (рдФрд░ рдЗрд╕рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ ) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╣реЗрд▓реА рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдХреЗ рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред

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

I expect to be able to connect to my socketio server, the same way I am able to in a web browser. рдореИрдВ рдЕрдкрдиреЗ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рд╡реИрд╕реЗ рд╣реА рдореИрдВ рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред

Setup рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

  • OS: iOS iPhone 10 simulator рдУрдПрд╕: рдЖрдИрдУрдПрд╕ рдЖрдИрдлреЛрди 10 рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░
  • browser: React-native рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА
  • socket.io version: 2.1.1 рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдг: 2.1.1
en

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

Finally found a solution for React Native >= 0.60 after a couple of coffees and digging deep into engine.io - additional to a version conflict (with RN) there seems to be an issue with passing in the URI. рдЕрдВрдд рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛> = 0.60 рдХреБрдЫ рдХреЙрдлрд╝реА рдХреЗ рдмрд╛рдж рдФрд░ engine.io рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдШрд░реНрд╖ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд (рдЖрд░рдПрди рдХреЗ рд╕рд╛рде) рдпреВрдЖрд░рдЖрдИ рдореЗрдВ рдЧреБрдЬрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред When I pass an URI into socketIO, it gets turncated to the host and 'socket.io' appened. рдЬрдм рдореИрдВ рдПрдХ рдпреВрдЖрд░рдЖрдИ рдХреЛ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╣реЛрд╕реНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 'рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ' рд╕рдВрд▓рдЧреНрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред So socketIO("https://foo.bar/my/endpoint/socket.io") will lead to socketIO trying to connect to https://foo.bar/socket.io without showing it in the logs when throwing the xhr pull / socket error. рддреЛ socketIO("https://foo.bar/my/endpoint/socket.io") xhr рдкреБрд▓/рд╕реЙрдХреЗрдЯ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддреЗ рд╕рдордп рдЗрд╕реЗ рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдП рдмрд┐рдирд╛ https://foo.bar/socket.io рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

Here we go, how to get socket.io running on current versions of React Native : рдпрд╣рд╛рдВ рд╣рдо рдЬрд╛рддреЗ рд╣реИрдВ, рдХреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реИ :

  • use socket.io-client version _2.1.1_ socket.io-client рд╕рдВрд╕реНрдХрд░рдг _2.1.1_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
// package.json
{
  "dependencies": {
     "socket.io-client": "2.1.1"
   }
}
  • when setting up the client, define a host and a path рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣реЛрд╕реНрдЯ рдФрд░ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
const socket = socketIO('https://your.host.com/', {
  path: '/path/to/socket.io/'
})
  • and suddenly everything works as smooth as planed рдФрд░ рдЕрдЪрд╛рдирдХ рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Hope to have saved you the time I spent on this issue ЁЯШЖ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдореИрдВрдиреЗ рдЬреЛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рд╣реИ

en

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

Looks like this is react-native's issue. рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред Earlier versions of RN seem to work with socket.io, but 0.0.57 does not. рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RN рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг socket.io рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 0.0.57 рдирд╣реАрдВред Closing. рд╕рдорд╛рдкрдиред

en

Try "socket.io-client": "2.0.4" "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ" рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: "2.0.4"
This may be socket.io bug рдпрд╣ socket.io рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

en

Try "socket.io-client": "2.0.4" "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ" рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: "2.0.4"
This may be socket.io bug рдпрд╣ socket.io рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

Yes it does work. рд╣рд╛рдБ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

en

рдЖрд░рдПрди 0.52 рдФрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ 2.0.4 рдХреЗ рд╕рд╛рде рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

en

@noahprince22 can you please share your configuration ? @ noahprince22 рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
I am currently using this and the issue still persist. рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИред

"react-native": "0.55.4",
"react": "16.3.1",
"socket.io-client": "^2.0.4",
"socket.io: "^2.2.0" //server side
en

any workaround? рдХреЛрдИ рдЙрдкрд╛рдп?

socket.io team please, this should work with RN, is a socket.io bug. socket.io рдЯреАрдо рдХреГрдкрдпрд╛, рдпрд╣ RN рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ socket.io рдмрдЧ рд╣реИред

en

Hi @ningacoding , I managed to get it working with this configuration рд╣рд╛рдп @ningacoding , рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛

"react-native": "0.55.4",
"react": "16.3.1",
"socket.io-client": "^2.0.4",
"socket.io: "^1.0.0" //server side

In your react-native app use this рдЕрдкрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдРрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ

const socket = io(BASE_URL, {
    secure: true,
    transports: ['websocket'],
  });
en

"react-native": "0.58.6", "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓": "0.58.6",
"react": "16.6.3", "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛": "16.6.3",
"socket.io-client": "^2.0.4", "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ": "^2.0.4",

Not working for me рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛

en

any solution? рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди? I'm facing the same thing рдореИрдВ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

en

I have long since stopped working on the project that I was having this issue with. рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереАред If I remember correctly, I downgraded react-native to "solve' the problem. рдЕрдЧрд░ рдореБрдЭреЗ рд╕рд╣реА рд╕реЗ рдпрд╛рдж рд╣реИ, рддреЛ рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ "рд╕рдорд╛рдзрд╛рди" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред

en

Experiencing the same issue, has there been a fix yet? рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпрд╛ рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ рд╣реИ? Anyone find any workarounds to implementing sockets in React Native? рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рддрд╛ рд╣реИ?

en

@russellgoldman I had problems with RN 0.60.5 and socket.io. @russellgoldman рдореБрдЭреЗ RN 0.60.5 рдФрд░ socket.io рдХреА рд╕рдорд╕реНрдпрд╛ рдереАред Release build did not connect to the server. рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реБрдЖред

None of socket.io versions worked with RN 0.60.5: I tried versions 2.0.4, 2.1.1, 2.2.0. рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрд░рдПрди 0.60.5 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг 2.0.4, 2.1.1, 2.2.0 рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

Downgrading to RN 0.59.10 solved my problem. RN 0.59.10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

en

Hi @anttirauh and @russellgoldman , рд╣рд╛рдп @anttirauh рдФрд░ @russellgoldman ,
I tried with RN 0.59.10 and Socket 2.0.4, but its not connecting on release build. рдореИрдВрдиреЗ рдЖрд░рдПрди 0.59.10 рдФрд░ рд╕реЙрдХреЗрдЯ 2.0.4 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдкрд░ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред
Can you please help me? рдореБрдЭреЗ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдЪрд╛рд╣рд┐рдП?

en

@ Ramesh21071993 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ socket.io рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 2.1.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

en

@anttirauh , i tried with all these versions socket io (2.0.4, 2.1.1, 2.2.0) and react-native versions (0.60, 0.59.10, 0.59.4) @anttirauh , рдореИрдВрдиреЗ рдЗрди рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЙрдХреЗрдЯ рдЖрдИрдУ (2.0.4, 2.1.1, 2.2.0) рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (0.60, 0.59.10, 0.59.4) рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
In server side also socket io 2.0.4. рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдореЗрдВ рднреА рд╕реЙрдХреЗрдЯ io 2.0.4.
still that same issue sir, рдЕрднреА рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рд╕рд░,

But it works on RN 0.55.4 рд▓реЗрдХрд┐рди рдпрд╣ RN 0.55.4 . рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

en

@Ramesh21071993 My understanding (which is formed with heavy googling and own testing) is that: @ рд░рдореЗрд╢ 21071993 рдореЗрд░реА рд╕рдордЭ (рдЬреЛ рднрд╛рд░реА рдЧреБрдЧрд▓реА рдФрд░ рдЦреБрдж рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдмрдиреА рд╣реИ) рдпрд╣ рд╣реИ:

  • socket.io stopped working with react-native about around RN version 0.57.4 socket.io рдиреЗ рд▓рдЧрднрдЧ RN рд╕рдВрд╕реНрдХрд░рдг 0.57.4 . рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛
  • socket.io or some other component was fixed later and I managed to get it working with version combo: RN 0.59.10 + socket.io 2.1.1 рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдШрдЯрдХ рдмрд╛рдж рдореЗрдВ рддрдп рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЙрдореНрдмреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛: рдЖрд░рдПрди 0.59.10 + рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ 2.1.1
  • RN version 0.60.x is not working with any version of socket.io рдЖрд░рдПрди рд╕рдВрд╕реНрдХрд░рдг 0.60.x рд╕реЙрдХреЗрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

So my advice is only: try one time more with RN 0.59.10 and socket.io 2.1.1 and make sure that you clear build folder before building. рддреЛ рдореЗрд░реА рд╕рд▓рд╛рд╣ рдХреЗрд╡рд▓ рдпрд╣реА рд╣реИ: рдЖрд░рдПрди 0.59.10 рдФрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ 2.1.1 рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред And remove node_modules before yarn/npm. рдФрд░ рдпрд╛рд░реНрди/рдПрдирдкреАрдПрдо рд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рд╣рдЯрд╛ рджреЗрдВред

en

@anttirauh Sir, below is my package.json. @anttirauh рд╕рд░, рдиреАрдЪреЗ рдореЗрд░рд╛ рдкреИрдХреЗрдЬ рд╣реИ.json. I did as what you told. рдореИрдВрдиреЗ рд╡рд╣реА рдХрд┐рдпрд╛ рдЬреЛ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ред But nothing happen. рд▓реЗрдХрд┐рди рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ред I remove build folder and node modules and again i install. рдореИрдВ рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВред
Please help me on this to work, Past one month am trying рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ, рдкрд┐рдЫрд▓реЗ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

App package.json рдРрдк рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

{ {
"name": "Track", "рдирд╛рдо": "рдЯреНрд░реИрдХ",
"version": "0.0.1", "рд╕рдВрд╕реНрдХрд░рдг": "0.0.1",
"private": true, "рдирд┐рдЬреА": рд╕рдЪ рд╣реИ,
"scripts": { "рд╕реНрдХреНрд░рд┐рдкреНрдЯ": {
"start": "node node_modules/react-native/local-cli/cli.js start", "рдкреНрд░рд╛рд░рдВрдн": "рдиреЛрдб рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓/рд╕реНрдерд╛рдиреАрдп-рдХреНрд▓реА/рдХреНрд▓реА.рдЬреЗрдПрд╕ рдкреНрд░рд╛рд░рдВрдн",
"test": "jest" "рдЯреЗрд╕реНрдЯ": "рдЬрд╕реНрдЯ"
}, },
"dependencies": { "рдирд┐рд░реНрднрд░рддрд╛": {
"react": "16.8.3", "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛": "16.8.3",
"react-native": "0.59.10", "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓": "0.59.10",
"socket.io": "2.1.1" "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ": "2.1.1"
}, },
"devDependencies": { "рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛": {
"@babel/core": "^7.6.2", "@ рдмреЗрдмреЗрд▓/рдХреЛрд░": "^7.6.2",
"@babel/runtime": "^7.6.2", "@ рдмреЗрдмреЗрд▓/рд░рдирдЯрд╛рдЗрдо": "^7.6.2",
"babel-jest": "^24.9.0", "рдмреЗрдмреЗрд▓-рдЬреЗрд╕реНрдЯ": "^24.9.0",
"jest": "^24.9.0", "рдЬреЗрд╕реНрдЯ": "^24.9.0",
"metro-react-native-babel-preset": "^0.56.0", "рдореЗрдЯреНрд░реЛ-рд░рд┐рдПрдХреНрд╢рди-рджреЗрд╢реА-рдмреЗрдмреЗрд▓-рдкреНрд░реАрд╕реЗрдЯ": "^0.56.0",
"react-test-renderer": "16.8.3" "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдкрд░реАрдХреНрд╖рдг-рд░реЗрдВрдбрд░рд░": "16.8.3"
}, },
"jest": { "рдордЬрд╛рдХ": {
"preset": "react-native" "рдкреНрд░реАрд╕реЗрдЯ": "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓"
} }
} }

Server Package.json рд╕рд░реНрд╡рд░ рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

{ {
"name": "TRACK-Socket", "рдирд╛рдо": "рдЯреНрд░реИрдХ-рд╕реЙрдХреЗрдЯ",
"version": "0.0.1", "рд╕рдВрд╕реНрдХрд░рдг": "0.0.1",
"dependencies": { "рдирд┐рд░реНрднрд░рддрд╛": {
"amqplib": "^0.5.1", "amqplib": "^0.5.1",
"config": "^3.2.2", "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди": "^ 3.2.2",
"express": "^4.15.3", "рдПрдХреНрд╕рдкреНрд░реЗрд╕": "^4.15.3",
"socket.io": "^2.1.1", "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ": "^ 2.1.1",
"ws": "^7.1.2" "рдбрдмреНрд▓реНрдпреВрдПрд╕": "^ 7.1.2"
} }
} }

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

en

Finally found a solution for React Native >= 0.60 after a couple of coffees and digging deep into engine.io - additional to a version conflict (with RN) there seems to be an issue with passing in the URI. рдЕрдВрдд рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛> = 0.60 рдХреБрдЫ рдХреЙрдлрд╝реА рдХреЗ рдмрд╛рдж рдФрд░ engine.io рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдШрд░реНрд╖ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд (рдЖрд░рдПрди рдХреЗ рд╕рд╛рде) рдпреВрдЖрд░рдЖрдИ рдореЗрдВ рдЧреБрдЬрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред When I pass an URI into socketIO, it gets turncated to the host and 'socket.io' appened. рдЬрдм рдореИрдВ рдПрдХ рдпреВрдЖрд░рдЖрдИ рдХреЛ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╣реЛрд╕реНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 'рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ' рд╕рдВрд▓рдЧреНрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред So socketIO("https://foo.bar/my/endpoint/socket.io") will lead to socketIO trying to connect to https://foo.bar/socket.io without showing it in the logs when throwing the xhr pull / socket error. рддреЛ socketIO("https://foo.bar/my/endpoint/socket.io") xhr рдкреБрд▓/рд╕реЙрдХреЗрдЯ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддреЗ рд╕рдордп рдЗрд╕реЗ рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдП рдмрд┐рдирд╛ https://foo.bar/socket.io рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

Here we go, how to get socket.io running on current versions of React Native : рдпрд╣рд╛рдВ рд╣рдо рдЬрд╛рддреЗ рд╣реИрдВ, рдХреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реИ :

  • use socket.io-client version _2.1.1_ socket.io-client рд╕рдВрд╕реНрдХрд░рдг _2.1.1_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
// package.json
{
  "dependencies": {
     "socket.io-client": "2.1.1"
   }
}
  • when setting up the client, define a host and a path рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣реЛрд╕реНрдЯ рдФрд░ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
const socket = socketIO('https://your.host.com/', {
  path: '/path/to/socket.io/'
})
  • and suddenly everything works as smooth as planed рдФрд░ рдЕрдЪрд╛рдирдХ рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

Hope to have saved you the time I spent on this issue ЁЯШЖ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдореИрдВрдиреЗ рдЬреЛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рд╣реИ

en

@rastapasta , i got an error like тАЬ CLEARTEXT communication not permitted by network security policy тАЭ, @rastapasta , рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рдЬреИрд╕реЗ " CLEARTEXT рд╕рдВрдЪрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдордд рдирд╣реАрдВ рд╣реИ ",

Please tell me what to do рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ

en

@Ramesh21071993 if you can't use your endpoint via https (please consider it), add their hostnames to the exception lists. @ рд░рдореЗрд╢21071993 рдпрджрд┐ рдЖрдк https рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ), рдЕрдкрд╡рд╛рдж рд╕реВрдЪреА рдореЗрдВ рдЙрдирдХреЗ рд╣реЛрд╕реНрдЯрдирд╛рдо рдЬреЛрдбрд╝реЗрдВред

for iOS: https://stackoverflow.com/a/30732693 рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП: https://stackoverflow.com/a/30732693
for Android: https://stackoverflow.com/a/50834600 рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП: https://stackoverflow.com/a/50834600

en

Sir, I tried that also but not able to do. рдорд╣реЛрджрдп, рдореИрдВрдиреЗ рд╡рд╣ рднреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ред If you don't mind can you please give me any demo source files рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреЛрдИ рдбреЗрдореЛ рд╕реЛрд░реНрд╕ рдлрд╛рдЗрд▓ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ
For long time I struck with this. рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд░рд╣рд╛ред

Am using ip and port sir рдореИрдВ рдЖрдИрдкреА рдФрд░ рдкреЛрд░реНрдЯ рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

en

рдЙрдкрд░реЛрдХреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ:

import socketIO from 'socket.io-client'
const socket = socketIO('http://8.8.8.8:3000/', {
  path: '/your/path/to/socket.io/'
  reconnectionDelay: 1000,
  reconnection: true,
  reconnectionAttempts: Infinity,
  jsonp: false
})

socket.on('connect', () => console.log('connected'))
socket.on('error', console.error)
socket.on('connect_error', console.error)
en

рдорд╣реЛрджрдп, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдореЗрдВ рд╕реЙрдХреЗрдЯ рдЖрдИрдУ 2.1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИ рдпрд╛ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

en

image

en

@Lizhoh рдЖрд░рдПрди рдкрд░ рд╡реНрд╣рд╛рдЬрд╝рдЕрдк рдЦреЛрдЬрдиреЗ рдХрд╛ рд╣реИрдХреА рддрд░реАрдХрд╛: рдмрдВрджрд░ рдкреИрдЪ console.log(err) рд╕реЗ рдкрд╣рд▓реЗ self.onError рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ node_modules engine.io-client/blob/master/lib/transports/ рдорддрджрд╛рди-xhr.js #L131

en

@Ramesh21071993 Is your issue resolved? @Ramesh21071993 рдХреНрдпрд╛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ? I am facing the same issue. рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред Tried everything mentioned in above comments. рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣рд░ рдЪреАрдЬ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

en

@rastapasta I followed what you have suggested above. @rastapasta рдореИрдВрдиреЗ рдКрдкрд░ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред My socket connection happens and then immediately disconnects. рдореЗрд░рд╛ рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред I get timeout error infinitely. рдореБрдЭреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рдорд┐рд▓рддреА рд╣реИред However, whenever I click on some component which makes a network call, the socket connects and immediately disconnects. рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рднреА рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рдШрдЯрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред If I don't do any network call after first socket disconnect, it would stay in the same state. рдЕрдЧрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЙрдХреЗрдЯ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рдпрд╣ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣реЗрдЧрд╛ред Please, could you help? рдХреГрдкрдпрд╛, рдХреНрдпрд╛ рдЖрдк рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

socket = io('http://IP:31515', { рд╕реЙрдХреЗрдЯ = рдЖрдИрдУ ('http://IP:31515', {
path: '/socketio', //I have given this is the path in my socket server as well as my kubernetes ingress file to route to that port рдкрде: '/ рд╕реЙрдХреЗрдЯрд┐рдпреЛ', // рдореИрдВрдиреЗ рдпрд╣ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕реЙрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрде рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдореЗрд░реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕ рдкреЛрд░реНрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИ
transports: ['websocket'], рдкрд░рд┐рд╡рд╣рди: ['рд╡реЗрдмрд╕реЛрдХреЗрдЯ'],
reconnectionDelay: 1000, рдкреБрди: рд╕рдВрдпреЛрдЬрдирд╡рд┐рд▓рдВрдм: 1000,
reconnection: true, рдкреБрди: рдХрдиреЗрдХреНрд╢рди: рд╕рдЪ,
reconnectionAttempts: Infinity, рдкреБрди: рд╕рдВрдпреЛрдЬрди рдкреНрд░рдпрд╛рд╕: рдЕрдирдВрдд,
// timeout: 30000, // рдЯрд╛рдЗрдордЖрдЙрдЯ: 30000,
jsonp: false рдЬреЗрд╕рдирдкреА: рдЭреВрдард╛
}); });

things that I have tried: рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреА рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

  1. removing and adding transports option рдкрд░рд┐рд╡рд╣рди рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛
    2.removing and add timeout 2. рд╣рдЯрд╛рдирд╛ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝рдирд╛
  2. removing all parameters except path рдкрде рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ
  3. adding pingTimeout and pingInterval in server socket configuration рд╕рд░реНрд╡рд░ рд╕реЙрдХреЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд┐рдВрдЧрдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдкрд┐рдВрдЧрдЗрдВрдЯрд░рд╡рд▓ рдЬреЛрдбрд╝рдирд╛
  4. removing path from server and client and only keeping it in my kubernetes ingress file to route to that deployment/pod. рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдкрде рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦ рдХрд░ рдЙрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди/рдкреЙрдб рддрдХ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

Note: the same server and kubernetes conf work for any node.js socket client as well as my react js web app. рдиреЛрдЯ: рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд┐рд╕реА рднреА рдиреЛрдб.рдЬреЗрдПрд╕ рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЗрдПрд╕ рд╡реЗрдм рдРрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред I am only facing this issue for React Native app in debug as well as release mode. рдореИрдВ рдХреЗрд╡рд▓ рдбрд┐рдмрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд░рд┐рд▓реАрдЬ рдореЛрдб рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдРрдк рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

en

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдореЗрд░реЗ рдЙрдкрд░реЛрдХреНрдд рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

en

@calqlum123 @calqlum123
Please make sure to рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ

  • add your host to the transport exception list (s. here ) рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЛ рдкрд░рд┐рд╡рд╣рди рдЕрдкрд╡рд╛рдж рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ( рдпрд╣рд╛рдБред )
  • try it without manually defining the transports рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ
  • monkey patch the console.log (s. here ) and check the error рдмрдВрджрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдкреИрдЪ рдХрд░реЗрдВред рд▓реЙрдЧ ( рдпрд╣рд╛рдВ ) рдФрд░ рддреНрд░реБрдЯрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
en

Can anyone please share a complete working example for both client and server? рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? Because this is confusing. рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

en

@Unforgiven-wanda @ рдЕрдирдлреЙрд░рдЧрд┐рд╡реЗрди-рд╡рд╛рдВрдбрд╛

foodsharing.network 's socket io: foodsharing.network рдХрд╛ рд╕реЙрдХреЗрдЯ io:

en

I am using "react-native": "0.61.5" and "socket.io-client": "^2.1.1", рдореИрдВ "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: "0.61.5" рдФрд░ "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ": "^ 2.1.1",

below is my code рдиреАрдЪреЗ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ

const socket = SocketIOClient('http://192.168.0.101:1234',{reconnect: true}); socket.connect(); socket.once("connect", () => { console.log("[CLIENT] Connected to remote server, identificating."); // this.sendIdentification(); }); socket.on('connect', () => { console.log('connected to socket server'); });

The code is not able to connect to the server and I am also looking for the solution. рдХреЛрдб рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред I don't want to downgrade my react-native version. рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

en

you must add this code in application tag рдЖрдкрдХреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреИрдЧ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
like below in AndroidManifest.xml AndroidManifest.xml рдореЗрдВ рдиреАрдЪреЗ рдХреА рддрд░рд╣
. . . . . .

en

I am using "react-native": "0.61.5" and "socket.io-client": "^2.1.1", рдореИрдВ "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: "0.61.5" рдФрд░ "рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ": "^ 2.1.1",

below is my code рдиреАрдЪреЗ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ

const socket = SocketIOClient('http://192.168.0.101:1234',{reconnect: true}); socket.connect(); socket.once("connect", () => { console.log("[CLIENT] Connected to remote server, identificating."); // this.sendIdentification(); }); socket.on('connect', () => { console.log('connected to socket server'); });

The code is not able to connect to the server and I am also looking for the solution. рдХреЛрдб рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред I don't want to downgrade my react-native version. рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

Can you try "ws://192.168.0.101:1234", instead of " http://192.168.0.101 :1234" рдХреНрдпрд╛ рдЖрдк " http://192.168.0.101:1234 " рдХреЗ рдмрдЬрд╛рдп "ws://192.168.00.101:1234" рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ?

en

@ рдЕрдирдлреЙрд░рдЧрд┐рд╡реЗрди-рд╡рд╛рдВрдбрд╛ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/socketio/socket.io/tree/master/examples/react-native

en

"рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ-рдХреНрд▓рд╛рдЗрдВрдЯ" рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ: "^3.0.4" рджреЗрд╢реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ

en

@chiragpurohit71085 have you checked the example there: https://github.com/socketio/socket.io/tree/master/examples/react-native? @ chiragpurohit71085 рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛ рд╣реИ: https://github.com/socketio/socket.io/tree/master/examples/react-native?

I think that this is a problem of URL, could you please check if your server is reachable at http://192.168.x.y:z ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдЖрд░рдПрд▓ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ http://192.168.x.y:z рдкрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ?

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

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

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

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

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

vadimka123 picture vadimka123  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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