Skip to content

Team, please respond: Connection timeout on Android #151

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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