wslink 2.0.3__py3-none-any.whl → 2.0.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wslink/__init__.py +1 -0
- wslink/backends/aiohttp/__init__.py +15 -2
- wslink/protocol.py +1 -0
- wslink/server.py +1 -0
- {wslink-2.0.3.dist-info → wslink-2.0.5.dist-info}/METADATA +1 -1
- {wslink-2.0.3.dist-info → wslink-2.0.5.dist-info}/RECORD +8 -8
- {wslink-2.0.3.dist-info → wslink-2.0.5.dist-info}/WHEEL +0 -0
- {wslink-2.0.3.dist-info → wslink-2.0.5.dist-info}/top_level.txt +0 -0
wslink/__init__.py
CHANGED
@@ -12,6 +12,7 @@ import aiohttp.web as aiohttp_web
|
|
12
12
|
|
13
13
|
|
14
14
|
# 4MB is the default inside aiohttp
|
15
|
+
MSG_OVERHEAD = int(os.environ.get("WSLINK_MSG_OVERHEAD", 4096))
|
15
16
|
MAX_MSG_SIZE = int(os.environ.get("WSLINK_MAX_MSG_SIZE", 4194304))
|
16
17
|
HEART_BEAT = int(os.environ.get("WSLINK_HEART_BEAT", 30)) # 30 seconds
|
17
18
|
|
@@ -35,12 +36,24 @@ def _fix_path(path):
|
|
35
36
|
|
36
37
|
|
37
38
|
# -----------------------------------------------------------------------------
|
39
|
+
# Needed for WASM/sharedArrayBuffer
|
40
|
+
# => we should find a way to dynamically provided needed header
|
41
|
+
# -----------------------------------------------------------------------------
|
42
|
+
@aiohttp_web.middleware
|
43
|
+
async def shared_array_buffer_headers(request: aiohttp_web.Request, handler):
|
44
|
+
response: aiohttp_web.Response = await handler(request)
|
45
|
+
response.headers.setdefault("Cross-Origin-Opener-Policy", "same-origin")
|
46
|
+
response.headers.setdefault("Cross-Origin-Embedder-Policy", "require-corp")
|
47
|
+
response.headers.setdefault("Access-Control-Allow-Origin", "*")
|
48
|
+
response.headers.setdefault("Cache-Control", "no-store")
|
49
|
+
return response
|
38
50
|
|
39
51
|
|
52
|
+
# -----------------------------------------------------------------------------
|
40
53
|
class WebAppServer(AbstractWebApp):
|
41
54
|
def __init__(self, server_config):
|
42
55
|
AbstractWebApp.__init__(self, server_config)
|
43
|
-
self.set_app(aiohttp_web.Application())
|
56
|
+
self.set_app(aiohttp_web.Application(middlewares=[shared_array_buffer_headers]))
|
44
57
|
self._ws_handlers = []
|
45
58
|
self._site = None
|
46
59
|
self._runner = None
|
@@ -200,7 +213,7 @@ class AioHttpWsHandler(WslinkHandler):
|
|
200
213
|
async def handleWsRequest(self, request):
|
201
214
|
client_id = str(uuid.uuid4()).replace("-", "")
|
202
215
|
current_ws = aiohttp_web.WebSocketResponse(
|
203
|
-
max_msg_size=MAX_MSG_SIZE, heartbeat=HEART_BEAT
|
216
|
+
max_msg_size=MSG_OVERHEAD + MAX_MSG_SIZE, heartbeat=HEART_BEAT
|
204
217
|
)
|
205
218
|
self.connections[client_id] = current_ws
|
206
219
|
|
wslink/protocol.py
CHANGED
@@ -252,6 +252,7 @@ class WslinkHandler(object):
|
|
252
252
|
|
253
253
|
async def onMessage(self, is_binary, msg, client_id):
|
254
254
|
if not is_binary:
|
255
|
+
logger.critical("wslink is not expecting text message:\n> %s", msg.data)
|
255
256
|
return
|
256
257
|
|
257
258
|
full_message = self.unchunkers[client_id].process_chunk(msg.data)
|
wslink/server.py
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
wslink/LICENSE,sha256=I44UH7kDVqxDLnnlOWw_hFL2Fz7RjQ_4vPzZv9NYgTU,1483
|
2
|
-
wslink/__init__.py,sha256=
|
2
|
+
wslink/__init__.py,sha256=7Uyn6lk5LhykHbBwQ9pwSmX1YhxDanD9TT6H95DXzhk,2709
|
3
3
|
wslink/chunking.py,sha256=1DJlGG6fjknGFrqPOtqUUc5tCrijldP7Kdx56d5e3Wg,7337
|
4
4
|
wslink/launcher.py,sha256=8VMs3juObLkyGYQFNLjMoo4qFpKIcxWz0kS-af-DKO4,21170
|
5
|
-
wslink/protocol.py,sha256=
|
5
|
+
wslink/protocol.py,sha256=V5kqfHebfyXzmZq0-ua0SjDkOXdQmx1Mu29G3hORgx0,15971
|
6
6
|
wslink/publish.py,sha256=9G5TXqyGr-LCo_LwHYhzif6lhG2iXDvEBmEgwR8fh1M,1437
|
7
7
|
wslink/relay.py,sha256=E8Lzu2Ay7KbOheN1-ArAZawo8lLqdDgJXOZSBuMknYs,86
|
8
|
-
wslink/server.py,sha256=
|
8
|
+
wslink/server.py,sha256=yvhCjpzPOfhbZrpDvW9i4H_uSyuQAe3ZOP-BRBmgHQA,9326
|
9
9
|
wslink/ssl_context.py,sha256=hNOJJCdrStws1Qf6vPvY4vTk9Bf8J5d90W3fS0cRv8o,2290
|
10
10
|
wslink/uri.py,sha256=woCQ4yChUqTMg9IT6YYDtUYeKmCg7OUCEgeBGA-19DY,384
|
11
11
|
wslink/websocket.py,sha256=pBiWqkL8Zn8LuSJ9nv3yA-KjEynbolOQ2gLHtQFJ2Ic,4611
|
12
12
|
wslink/backends/__init__.py,sha256=cyJGjm-YyBSyOEX81owyTbJ3YnrA6dB7--B4LnsEtHI,1214
|
13
|
-
wslink/backends/aiohttp/__init__.py,sha256=
|
13
|
+
wslink/backends/aiohttp/__init__.py,sha256=DFLjJQQcUW1p0JRMnhi8bTXnN2TvTNKfE7HiTUfTksY,9311
|
14
14
|
wslink/backends/aiohttp/launcher.py,sha256=gHNMvtgNHEwBN_QBRDSCrTp2B4K1PsfV81rKaHi7Cxo,8897
|
15
15
|
wslink/backends/aiohttp/relay.py,sha256=oZAzIQTpsQaObWXaa-_VtoTOUQALC_QLDd9UvWspYaU,13311
|
16
16
|
wslink/backends/generic/__init__.py,sha256=Qu65gWsd2xCSsxybnDtEDI5vMjHN-F5jgPZOyNIxnGs,112
|
@@ -19,7 +19,7 @@ wslink/backends/jupyter/__init__.py,sha256=Qu65gWsd2xCSsxybnDtEDI5vMjHN-F5jgPZOy
|
|
19
19
|
wslink/backends/jupyter/core.py,sha256=PCQN-uZPFROnRv8B5dNwnwHV67o4Bpme3_Z6V-zbOUA,3864
|
20
20
|
wslink/backends/tornado/__init__.py,sha256=Qu65gWsd2xCSsxybnDtEDI5vMjHN-F5jgPZOyNIxnGs,112
|
21
21
|
wslink/backends/tornado/core.py,sha256=tPMkkhWuO_ovkisVim0zcegwZKEAG4IRUdd_O_0a_R0,2157
|
22
|
-
wslink-2.0.
|
23
|
-
wslink-2.0.
|
24
|
-
wslink-2.0.
|
25
|
-
wslink-2.0.
|
22
|
+
wslink-2.0.5.dist-info/METADATA,sha256=P1IY5mcmAgeHHi6qh1EtAeeYlr0MZXEoYcPSer0kYdA,3045
|
23
|
+
wslink-2.0.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
24
|
+
wslink-2.0.5.dist-info/top_level.txt,sha256=N0d8eqvhwhfW1p1yPTmvxlbzhjz7ZyhBfysNvaFqpQY,7
|
25
|
+
wslink-2.0.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|