- Not deleting closed sockets in sokcet map
This commit is contained in:
Linloir 2022-10-22 20:53:49 +08:00
parent 9825802e06
commit 3e575110a9
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366
3 changed files with 23 additions and 14 deletions

View File

@ -1,7 +1,7 @@
/*
* @Author : Linloir
* @Date : 2022-10-06 15:44:16
* @LastEditTime : 2022-10-22 17:56:35
* @LastEditTime : 2022-10-22 20:35:50
* @Description :
*/
@ -42,7 +42,13 @@ void main(List<String> arguments) async {
var token = controllerMap[controller];
controllerMap.remove(controller);
tokenMap[token]?.remove(controller);
}
},
onDone: () {
var token = controllerMap[controller];
controllerMap.remove(controller);
tokenMap[token]?.remove(controller);
},
cancelOnError: true
);
controller.requestStreamBroadcast.listen(
(request) async {
@ -140,11 +146,11 @@ void main(List<String> arguments) async {
continue;
}
}
//Update Fetch Histories
await DataBaseHelper().setFetchHistoryFor(
tokenID: device,
newTimeStamp: message.timestamp
);
// //Update Fetch Histories
// await DataBaseHelper().setFetchHistoryFor(
// tokenID: device,
// newTimeStamp: message.timestamp
// );
}
var targetUserID = message.receiverID;
var targetDevices = await DataBaseHelper().fetchTokenIDsViaUserID(userID: targetUserID);
@ -170,11 +176,11 @@ void main(List<String> arguments) async {
continue;
}
}
//Update Fetch Histories
await DataBaseHelper().setFetchHistoryFor(
tokenID: device,
newTimeStamp: message.timestamp
);
// //Update Fetch Histories
// await DataBaseHelper().setFetchHistoryFor(
// tokenID: device,
// newTimeStamp: message.timestamp
// );
}
var response = await onSendMessage(request, socket);
controller.outStream.add(response);

View File

@ -1,7 +1,7 @@
/*
* @Author : Linloir
* @Date : 2022-10-08 15:10:04
* @LastEditTime : 2022-10-20 20:20:00
* @LastEditTime : 2022-10-22 20:30:36
* @Description :
*/
@ -66,9 +66,11 @@ class TCPController {
print('[L] [CLOSED ]-----------------------');
print('[L] Connection closed: ${socket.address}:${socket.port}<-${socket.remoteAddress}:${socket.remotePort}');
_requestStreamController.close();
_responseStreamController.close();
}).onError((error, stackTrace) {
print(error);
_requestStreamController.addError(error ?? Error());
_responseStreamController.addError(error ?? Error());
},);
// socket.listen(
// _pullRequest,

View File

@ -1,7 +1,7 @@
/*
* @Author : Linloir
* @Date : 2022-10-08 15:14:26
* @LastEditTime : 2022-10-20 16:33:16
* @LastEditTime : 2022-10-22 20:21:10
* @Description :
*/
import 'dart:convert';
@ -16,6 +16,7 @@ enum RequestType {
modifyPassword('MODIFYPASSWD'), //Modify user password
modifyProfile ('MODIFYPROFILE'), //Modify user profile
sendMessage ('SENDMSG'), //Send message
ackMessage ('ACKMSG'), //Ack forwarded messages, update fetch history
fetchMessage ('FETCHMSG'), //Fetch message
findFile ('FINDFILE'), //Find file by md5 before transmitting the file
fetchFile ('FETCHFILE'), //Fetch file and file md5 by message md5