I sometimes get the exception “SocketException: Connection reset by peer (OS Error: Connection reset by peer)” in my dart server which uses websockets. This leads to the server process terminating. How do I catch the exception to continue the process?
static Future<void> init() async {
SecurityContext? securityContext;
var server;
if (Env.certificateChainPath != null && Env.privateKeyPath != null) {
securityContext = SecurityContext()
..usePrivateKeyBytes(File(Env.privateKeyPath!).readAsBytesSync())
..useCertificateChainBytes(File(Env.certificateChainPath!).readAsBytesSync());
server = await HttpServer.bindSecure(Env.local ? "localhost" : InternetAddress.anyIPv6, Env.wsPort, securityContext);
} else {
server = await HttpServer.bind(Env.local ? "localhost" : InternetAddress.anyIPv6, Env.wsPort);
}
await for (var request in server) {
if (WebSocketTransformer.isUpgradeRequest(request)) {
WebSocket ws = await WebSocketTransformer.upgrade(request);
// ...
}
}
}