async def application(scope, receive, send): assert scope['type'] == 'websocket' while True: m = await receive() if m['type'] == 'websocket.connect': subprotocols = scope['subprotocols'] await send( { 'type': 'websocket.accept', 'headers': [ (b'x-subprotocols', str(subprotocols).encode()), ], 'subprotocol': subprotocols[0], } ) if m['type'] == 'websocket.receive': await send( { 'type': 'websocket.send', 'bytes': m.get('bytes', None), 'text': m.get('text', None), } ) if m['type'] == 'websocket.disconnect': break