socket.io-client
socket.io-client copied to clipboard
socket.io-client not working on Android API 28 (React Native)
I want to use Socket.IO-client with React Native. My environment:
- React Native 0.61.5
- React 16.9.0
- Socket.IO-client ^2.3.0
My code works on iOS, but not on Android. I'm testing on Android version 9.0 (Pie) - API 28. I do not get any errors, it just doesn't work. I'm trying to log every connection server-side (NodeJS). When I open the app in the iOS-emulator, I see a log (eg. "connection established"). When I open the same app using Android, I don't see a log.
Front-end code (simplified!): React Native
socket = io('https://127.0.0.1:8001', {
secure: true,
transports: ['websocket']
})
socket.on('message', () => console.log('message received'))
socket.close()
Back-end code (simplified!): NodeJS
io.on('connection', socket => {
console.log('connection established')
socket.on('disconnect', () => console.log('disconnected'))
})
Same issue here 😥
Same issue, without transports: ['websocket'] it works.
Edit: I switched to [email protected] and seems to be working.
Same Issue I am facing....
Check out this https://brentmarquez.com/uncategorized/how-to-get-socket-io-to-work-with-react-native/
Same issue here!!
Does it happen on the Android emulator, or on a real device?
On a real device, you need to be on the same network as your server (WiFi for example), and use its IP address:
const socket = io("http://192.168.0.28:3000");
Just remove http://123.456.78.0:2053 .Then change https://domain.name .
const socket = io("https://blabla.com:2053");
For future readers:
Please check our guide with React Native here: https://socket.io/how-to/use-with-react-native
Please reopen if needed.