mirror of
https://github.com/Linloir/Simple-TCP-Server.git
synced 2025-12-18 16:38:12 +08:00
Bug Fix:
- Not deleting closed sockets in sokcet map
This commit is contained in:
parent
9825802e06
commit
3e575110a9
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author : Linloir
|
* @Author : Linloir
|
||||||
* @Date : 2022-10-06 15:44:16
|
* @Date : 2022-10-06 15:44:16
|
||||||
* @LastEditTime : 2022-10-22 17:56:35
|
* @LastEditTime : 2022-10-22 20:35:50
|
||||||
* @Description :
|
* @Description :
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -42,7 +42,13 @@ void main(List<String> arguments) async {
|
|||||||
var token = controllerMap[controller];
|
var token = controllerMap[controller];
|
||||||
controllerMap.remove(controller);
|
controllerMap.remove(controller);
|
||||||
tokenMap[token]?.remove(controller);
|
tokenMap[token]?.remove(controller);
|
||||||
}
|
},
|
||||||
|
onDone: () {
|
||||||
|
var token = controllerMap[controller];
|
||||||
|
controllerMap.remove(controller);
|
||||||
|
tokenMap[token]?.remove(controller);
|
||||||
|
},
|
||||||
|
cancelOnError: true
|
||||||
);
|
);
|
||||||
controller.requestStreamBroadcast.listen(
|
controller.requestStreamBroadcast.listen(
|
||||||
(request) async {
|
(request) async {
|
||||||
@ -140,11 +146,11 @@ void main(List<String> arguments) async {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Update Fetch Histories
|
// //Update Fetch Histories
|
||||||
await DataBaseHelper().setFetchHistoryFor(
|
// await DataBaseHelper().setFetchHistoryFor(
|
||||||
tokenID: device,
|
// tokenID: device,
|
||||||
newTimeStamp: message.timestamp
|
// newTimeStamp: message.timestamp
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
var targetUserID = message.receiverID;
|
var targetUserID = message.receiverID;
|
||||||
var targetDevices = await DataBaseHelper().fetchTokenIDsViaUserID(userID: targetUserID);
|
var targetDevices = await DataBaseHelper().fetchTokenIDsViaUserID(userID: targetUserID);
|
||||||
@ -170,11 +176,11 @@ void main(List<String> arguments) async {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Update Fetch Histories
|
// //Update Fetch Histories
|
||||||
await DataBaseHelper().setFetchHistoryFor(
|
// await DataBaseHelper().setFetchHistoryFor(
|
||||||
tokenID: device,
|
// tokenID: device,
|
||||||
newTimeStamp: message.timestamp
|
// newTimeStamp: message.timestamp
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
var response = await onSendMessage(request, socket);
|
var response = await onSendMessage(request, socket);
|
||||||
controller.outStream.add(response);
|
controller.outStream.add(response);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author : Linloir
|
* @Author : Linloir
|
||||||
* @Date : 2022-10-08 15:10:04
|
* @Date : 2022-10-08 15:10:04
|
||||||
* @LastEditTime : 2022-10-20 20:20:00
|
* @LastEditTime : 2022-10-22 20:30:36
|
||||||
* @Description :
|
* @Description :
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -66,9 +66,11 @@ class TCPController {
|
|||||||
print('[L] [CLOSED ]-----------------------');
|
print('[L] [CLOSED ]-----------------------');
|
||||||
print('[L] Connection closed: ${socket.address}:${socket.port}<-${socket.remoteAddress}:${socket.remotePort}');
|
print('[L] Connection closed: ${socket.address}:${socket.port}<-${socket.remoteAddress}:${socket.remotePort}');
|
||||||
_requestStreamController.close();
|
_requestStreamController.close();
|
||||||
|
_responseStreamController.close();
|
||||||
}).onError((error, stackTrace) {
|
}).onError((error, stackTrace) {
|
||||||
print(error);
|
print(error);
|
||||||
_requestStreamController.addError(error ?? Error());
|
_requestStreamController.addError(error ?? Error());
|
||||||
|
_responseStreamController.addError(error ?? Error());
|
||||||
},);
|
},);
|
||||||
// socket.listen(
|
// socket.listen(
|
||||||
// _pullRequest,
|
// _pullRequest,
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author : Linloir
|
* @Author : Linloir
|
||||||
* @Date : 2022-10-08 15:14:26
|
* @Date : 2022-10-08 15:14:26
|
||||||
* @LastEditTime : 2022-10-20 16:33:16
|
* @LastEditTime : 2022-10-22 20:21:10
|
||||||
* @Description :
|
* @Description :
|
||||||
*/
|
*/
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
@ -16,6 +16,7 @@ enum RequestType {
|
|||||||
modifyPassword('MODIFYPASSWD'), //Modify user password
|
modifyPassword('MODIFYPASSWD'), //Modify user password
|
||||||
modifyProfile ('MODIFYPROFILE'), //Modify user profile
|
modifyProfile ('MODIFYPROFILE'), //Modify user profile
|
||||||
sendMessage ('SENDMSG'), //Send message
|
sendMessage ('SENDMSG'), //Send message
|
||||||
|
ackMessage ('ACKMSG'), //Ack forwarded messages, update fetch history
|
||||||
fetchMessage ('FETCHMSG'), //Fetch message
|
fetchMessage ('FETCHMSG'), //Fetch message
|
||||||
findFile ('FINDFILE'), //Find file by md5 before transmitting the file
|
findFile ('FINDFILE'), //Find file by md5 before transmitting the file
|
||||||
fetchFile ('FETCHFILE'), //Fetch file and file md5 by message md5
|
fetchFile ('FETCHFILE'), //Fetch file and file md5 by message md5
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user