30 lines
861 B
Python
30 lines
861 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
|