Skip to content

Team, please respond: Connection timeout on Android #151

@idevchandra

Description

@idevchandra

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:

  1. 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);
  1. On Terminal, run node server.js

  2. 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.

  3. 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 
        ] 
        ));
  1. 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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions