Closed
Description
Long story short
Hi!
An exception occurs when closing the websocket connection in _pong_not_received if the connection was already dropped somehow :
File "aiohttp/web_ws.py", line 88, in _pong_not_received
self._req.transport.close()
AttributeError: 'NoneType' object has no attribute 'close'
Expected behaviour
No exception.
Actual behaviour
self._req is not None, but self._req.transport is None.
Your environment
Python 3.5, aiohttp==2.0.5, standard loop, server behind nginx.
The issue is happening with really bad websocket clients, not web browsers, that may drop connections without sending close control frames.
Thanks !