-
Notifications
You must be signed in to change notification settings - Fork 112
Description
Describe the bug
Android connection is timingout. But, iOS is fine.
Environment:
Server: Node.js
Client: Flutter with Adhara socket.io
iOS Emulators: iOS 14.2 iPhone 12 Pro and iPhone 12 mini
Android Emulators tried: Pixel 3a API 30. Pixel 4 API 30.
Have you tried reproducing the issue with example available in this repo?
Yes
To Reproduce
Steps to reproduce the behavior:
- Have the below simple node.js server
// server.js
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.sockets.on("connection", function (socket) {
console.log("Connected " + socket.id);
socket.on('disconnect', function () {
console.log('client disconnect...', socket.id)
})
});
listen_port = process.env.PORT || 7000;
server.listen(listen_port);
-
On Terminal, run
node server.js
-
On Terminal run
adb -s emulator-5554 reverse tcp:7000 tcp:7000
The behavior of the app is same with or without running the above command. -
Change this repo example, as shown below, with the actual server URL - localhost.
Because, it is Android emulator, I used 10.0.2.2. I also tried with localhost, 127.0. 0.1 too. With all the three, it is same behavior - "Connection Timeout"
String URI = Platform.isIOS ? 'http://localhost' : 'http://10.0.2.2';
...
...
SocketIO socket = await manager.createInstance(SocketOptions(
URI,
nameSpace: (identifier == "namespaced") ? "/adhara" : "/",
query: {
"timestamp": DateTime.now().toString()
},
enableLogging: true, // I am sure this has nothing to do with connection. I tried `true` too!
transports: [
Transports.WEB_SOCKET
]
));
- Run the app on iOS and Android simulators.
Expected behavior
iOS Simulator and Android Emulators should be able to connect to server.
Device details:
- Device Type: Android Emulator
- Model: Pixel 4
- OS: Android API 30
- Package Version
adhara_socket_io: ^0.4.1
Relevant Logs
I/flutter ( 7913): Connecting to socket...
W/a4m.flutter_ap( 7913): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, reflection, allowed)
W/a4m.flutter_ap( 7913): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, reflection, allowed)
W/a4m.flutter_ap( 7913): Accessing hidden method Ldalvik/system/CloseGuard;->warnIfOpen()V (greylist,core-platform-api, reflection, allowed)
I/flutter ( 7913): Log: onConnectError. Reason -> io.socket.client.SocketIOException: timeout
I/flutter ( 7913): Log: onConnectTimeout: Reason -> 20000
I/flutter ( 7913): Log: onConnectError. Reason -> io.socket.client.SocketIOException: timeout
I/flutter ( 7913): Log: onConnectTimeout: Reason -> 20000