Files
nginx-unit/test/python/websockets/subprotocol/asgi.py
2020-10-01 23:55:35 +03:00

26 lines
746 B
Python

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;