summaryrefslogtreecommitdiffhomepage
path: root/test/python/websockets
diff options
context:
space:
mode:
authorAndrei Belov <defan@nginx.com>2020-10-08 19:19:31 +0300
committerAndrei Belov <defan@nginx.com>2020-10-08 19:19:31 +0300
commitd586ac9fdc4a86c142b06a75dde4cdacad5b52f6 (patch)
tree9817282396f9d2cf5333050e4b5bf807d3617e40 /test/python/websockets
parent9be35d9b7418c041e5177f273c20f0fd2d3f00ad (diff)
parentad516735a65fe109773b60e26214a071411f1734 (diff)
downloadunit-1.20.0-1.tar.gz
unit-1.20.0-1.tar.bz2
Merged with the default branch.1.20.0-1
Diffstat (limited to '')
-rw-r--r--test/python/websockets/mirror/asgi.py18
-rw-r--r--test/python/websockets/subprotocol/asgi.py25
2 files changed, 43 insertions, 0 deletions
diff --git a/test/python/websockets/mirror/asgi.py b/test/python/websockets/mirror/asgi.py
new file mode 100644
index 00000000..0f1d9953
--- /dev/null
+++ b/test/python/websockets/mirror/asgi.py
@@ -0,0 +1,18 @@
+async def application(scope, receive, send):
+ if scope['type'] == 'websocket':
+ while True:
+ m = await receive()
+ if m['type'] == 'websocket.connect':
+ await send({
+ 'type': 'websocket.accept',
+ })
+
+ 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;
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;