musjib999
musjib999

Reputation: 53

Flutter Socket io disconnects after some seconds

Am using a local socket server using express which is expose to the internet using ngrok. This is the server code:

const app = require('express')();
const http = require('http').createServer(app);

app.get('/', (req, res) => {
   res.send("Node Server is running. Yay!!");
});

//Socket Logic
const socketio = require('socket.io')(http)
socketio.on("connection", (userSocket) => {
   console.log('Connected to socket');
});

http.listen(3000, () => {
 console.log('listening on port 3000');
});

and my connection logic is:

 void connectToServer() {
    try {
      socket = io('https://fa6387728fcd.ngrok.io', <String, dynamic>{
        'transports': ['websocket'],
        'autoConnect': false,
      });

      // Connect to websocket
      socket.connect();

      // Handle socket events
      socket.on('connect', (data) => print('Connected to socket server'));
      socket.on('disconnect', (reason) => print('disconnected $reason'));
      socket.on('error', (err) => print('Error: $err'));
    } catch (e) {
      print(e.toString());
    }
  }

But i keep getting disconnected ping timeout or sometimes i get disconnected transport close

Upvotes: 4

Views: 4238

Answers (2)

blokberg
blokberg

Reputation: 994

I had the same problem. The problem wasn't caused by the socket_io_client package.

When i update socket.io on my server side, the problem is solved. Just run npm install socket.io@latest command on your node.js server.

Upvotes: 1

tanweer anwar
tanweer anwar

Reputation: 127

According to the socket_io_client official doc, use this workaround if you are using https server:

class MyHttpOverrides extends HttpOverrides {
  @override
  HttpClient createHttpClient(SecurityContext context) {
    return super.createHttpClient(context)
      ..badCertificateCallback =
          (X509Certificate cert, String host, int port) => true;
  }
}

void main() {
  HttpOverrides.global = new MyHttpOverrides();
  runApp(MaterialApp(
  ...
  ));
}

Upvotes: 0

Related Questions