socket.on 在颤振中无法正常工作
我创建一个类来管理套接字并在 main.dart
类中使用它。
class SocketServices {
static late Socket socket;
static void connect() async {
socket = io(
'http://server-address',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build());
socket.connect();
}
static void disConnect() {
socket.disconnect()
..dispose()
..close();
}
}
连接正确。当我在其中一个页面中使用此套接字来侦听事件时,它无法连接:
@override
void onInit() {
super.onInit();
SocketServices.socket.on("online_players",(data) {
print(data.toString());
});
}
但是,当我在 SocketServices
的连接方法中使用 socket.on
时类,它正确返回数据。
static void connect() async {
socket = io(
'http://45.147.160.146:5000',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build());
socket.connect();
socket.on("online_users", (data){
print(data);
});
}
有什么区别?我需要其中一个页面上的数据,如何在 SocketServices
类中声明 socket.on
并使用该页面上的实时数据?
I create a class to manage socket and use it in the main.dart
class.
class SocketServices {
static late Socket socket;
static void connect() async {
socket = io(
'http://server-address',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build());
socket.connect();
}
static void disConnect() {
socket.disconnect()
..dispose()
..close();
}
}
It connects correctly. When I use this socket in one of the pages to listen to an event, it doesn't connect:
@override
void onInit() {
super.onInit();
SocketServices.socket.on("online_players",(data) {
print(data.toString());
});
}
But, when I use socket.on
in the connecting method of SocketServices
class, it returns data correctly.
static void connect() async {
socket = io(
'http://45.147.160.146:5000',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build());
socket.connect();
socket.on("online_users", (data){
print(data);
});
}
What difference? I need that data on one of the pages, How can I declare socket.on
in SocketServices
class and use live data on that page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论