From cd2d2e802e89f573e07d04e23c94f1deac3b2f7c Mon Sep 17 00:00:00 2001 From: John Belmonte Date: Mon, 1 Feb 2021 22:41:27 +0900 Subject: [PATCH] server: close TCP connection after closing websocket Fixes #115 and #147. --- trio_websocket/_impl.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trio_websocket/_impl.py b/trio_websocket/_impl.py index 36d6cbf..3aceda6 100644 --- a/trio_websocket/_impl.py +++ b/trio_websocket/_impl.py @@ -1018,6 +1018,12 @@ async def _close_web_socket(self, code, reason=None): exc = ConnectionClosed(self._close_reason) logger.debug('%s websocket closed %r', self, exc) await self._send_channel.aclose() + # RFC: "When a server is instructed to Close the WebSocket Connection + # it SHOULD initiate a TCP Close immediately, and when a client is + # instructed to do the same, it SHOULD wait for a TCP Close from the + # server." + if self.is_server: + await self._close_stream() async def _get_request(self): '''