在 Flutter 中建立连接时"Socket id"为空



我使用以下代码与socket.io建立连接:

late IO.Socket _socket;
@override
void initState() {
super.initState();
_socket = IO.io('http://192.168.1.3:3001',
IO.OptionBuilder().setTransports(['websocket']).build());
print(_socket.id);
}

当我运行应用程序时,_socket.id为null。

您忘记像下面这样连接套接字

_socket.connect();

但是你写代码的方式不好。你可以按照下面的模式。

IO.Socket socket;
@override
void initState() {
initSocket();
super.initState();
}
initSocket() {
socket = IO.io('http://192.168.1.3:3001', IO.OptionBuilder().setTransports(['websocket'])
.disableAutoConnect() .build());
socket.connect();
socket.onConnect((_) {
print('Connection established');
});
socket.onDisconnect((_) => print('Connection Disconnection'));
socket.onConnectError((err) => print(err));
socket.onError((err) => print(err));
}

最新更新