Socket.connected returning false with Flutter Socket.io_client, connected to Node.js Socket.io server

1.8k Views Asked by At

I am attempting to connect my Flutter app to a Node.js server running Socket.io. However, whenever I print out socket.connected, it returns false.

My Flutter Socket.io_client is version socket_io_client: ^2.0.0-beta.4-nullsafety.0, and my Node.js socket.io version is 3.1.2. That means that there is no error caused due to version incompatability.

What can I do to make my Flutter client connect to my Node server?

Here is my code to connect to the node server.

  void initState() {
    
    super.initState();
    connect();
  }

  void connect(){
    print("ASDASD");
    IO.Socket socket = IO.io("https://geobus-server.ibrahimshah.repl.co/", <String, dynamic>{
      'transports':['websocket'],
      'autoConnect': true,
    });
    socket.connect();
    socket.onConnect((data) => print("Connected"));
    print(socket.connected);
    
  }

Here is my Node.js server code:

const app = express();
const http = require("http");
const server = http.createServer(app);
var io = require('socket.io')(server);

app.get('/', (req, res) => {
  res.send('Hello Express app!')
});


app.get('/questions', (req, res)=>{
  console.log(req.url);
  

})

io.on('connection', (socket) => {
    
    console.log("User connected")
    
});

app.listen(3000, () => {
  console.log('server started');
});

My output: false

1

There are 1 best solutions below

0
Reza Akraminejad On

Put print line inside socket.onConnect method block and check it again.