【发布时间】:2023-01-16 21:51:16
【问题描述】:
我使用 socket_io_client 连接到服务器套接字。它工作正常,但在得到第一个响应后它断开连接,我应该一次又一次地连接它。它不会无限地听服务器。这是我的代码
initSocket(String msg,String userStr) async {
if(socket!=null){
await loginToServer('$userName\n');
}else{
socket = await Socket.connect(socketIpAddress, 1500);
print('Connected to: ${socket!.remoteAddress.address}:${socket!.remotePort}');
await loginToServer('$userName\n');
// listen for responses from the server
socket?.listen(
// handle data from the server
(Uint8List data) {
final serverResponse = String.fromCharCodes(data);
print('Server: $serverResponse');
if(serverResponse.contains('hello')){
sendMessage(msg, userStr);
}else{
ParserSocket().getMessage(serverResponse.substring(9), serverResponse.substring(3,9), SentType.Internet, false, ctx);
}
},
// handle errors
onError: (error) {
print(error);
socket?.destroy();
},
// handle server ending connection
onDone: () {
print('Server left.');
socket!.destroy();
},
cancelOnError: false
);
}
}
Future<void> sendMessage(String message,String userName) async {
print('Client: $msg');
socket?.write(msg);
}
我检查了 onDone() 方法但没有结果
【问题讨论】: