summaryrefslogtreecommitdiffhomepage
path: root/test/python/websockets/subprotocol
diff options
context:
space:
mode:
Diffstat (limited to 'test/python/websockets/subprotocol')
-rw-r--r--test/python/websockets/subprotocol/asgi.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/python/websockets/subprotocol/asgi.py b/test/python/websockets/subprotocol/asgi.py
new file mode 100644
index 00000000..92263dd7
--- /dev/null
+++ b/test/python/websockets/subprotocol/asgi.py
@@ -0,0 +1,25 @@
+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;