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 CHANGED
@@ -5,6 +5,7 @@ javascript client over a websocket.
5
5
  wslink.server creates the python server
6
6
  wslink.websocket handles the communication
7
7
  """
8
+
8
9
  import asyncio
9
10
  import functools
10
11
 
@@ -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
@@ -6,6 +6,7 @@ web-pages are determines by the command line arguments passed in.
6
6
  Use "--help" to list the supported arguments.
7
7
 
8
8
  """
9
+
9
10
  import argparse
10
11
  import asyncio
11
12
  import logging
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wslink
3
- Version: 2.0.3
3
+ Version: 2.0.5
4
4
  Summary: Python/JavaScript library for communicating over WebSocket
5
5
  Home-page: https://github.com/kitware/wslink
6
6
  Author: Kitware, Inc.
@@ -1,16 +1,16 @@
1
1
  wslink/LICENSE,sha256=I44UH7kDVqxDLnnlOWw_hFL2Fz7RjQ_4vPzZv9NYgTU,1483
2
- wslink/__init__.py,sha256=AbEm-sUSoGL-uLpnbK1rSSjHSvyW-bMsGHWie7FgMHw,2708
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=zdf4QthFHpAgEw3hTUyyaOuN76jzHeOJBpvekPbk7aY,15886
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=kS0v17uidq6auF4k2kD4L_FHU6i-OdxvG2tH1KeJOpk,9325
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=u2UxSnaMJPoiba1CL1fOeM8bTggyOw6znQ2iGd69qJI,8463
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.3.dist-info/METADATA,sha256=KUntVYaFzK2cZ7KIT69UrYM9XlL9czyey9-ZgGgg984,3045
23
- wslink-2.0.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
24
- wslink-2.0.3.dist-info/top_level.txt,sha256=N0d8eqvhwhfW1p1yPTmvxlbzhjz7ZyhBfysNvaFqpQY,7
25
- wslink-2.0.3.dist-info/RECORD,,
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