wslink 2.0.3__tar.gz → 2.0.5__tar.gz

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.
Files changed (31) hide show
  1. {wslink-2.0.3 → wslink-2.0.5}/PKG-INFO +1 -1
  2. {wslink-2.0.3 → wslink-2.0.5}/setup.cfg +1 -1
  3. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/__init__.py +1 -0
  4. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/aiohttp/__init__.py +15 -2
  5. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/protocol.py +1 -0
  6. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/server.py +1 -0
  7. {wslink-2.0.3 → wslink-2.0.5}/src/wslink.egg-info/PKG-INFO +1 -1
  8. {wslink-2.0.3 → wslink-2.0.5}/MANIFEST.in +0 -0
  9. {wslink-2.0.3 → wslink-2.0.5}/README.rst +0 -0
  10. {wslink-2.0.3 → wslink-2.0.5}/setup.py +0 -0
  11. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/LICENSE +0 -0
  12. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/__init__.py +0 -0
  13. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/aiohttp/launcher.py +0 -0
  14. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/aiohttp/relay.py +0 -0
  15. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/generic/__init__.py +0 -0
  16. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/generic/core.py +0 -0
  17. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/jupyter/__init__.py +0 -0
  18. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/jupyter/core.py +0 -0
  19. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/tornado/__init__.py +0 -0
  20. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/backends/tornado/core.py +0 -0
  21. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/chunking.py +0 -0
  22. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/launcher.py +0 -0
  23. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/publish.py +0 -0
  24. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/relay.py +0 -0
  25. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/ssl_context.py +0 -0
  26. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/uri.py +0 -0
  27. {wslink-2.0.3 → wslink-2.0.5}/src/wslink/websocket.py +0 -0
  28. {wslink-2.0.3 → wslink-2.0.5}/src/wslink.egg-info/SOURCES.txt +0 -0
  29. {wslink-2.0.3 → wslink-2.0.5}/src/wslink.egg-info/dependency_links.txt +0 -0
  30. {wslink-2.0.3 → wslink-2.0.5}/src/wslink.egg-info/requires.txt +0 -0
  31. {wslink-2.0.3 → wslink-2.0.5}/src/wslink.egg-info/top_level.txt +0 -0
@@ -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,5 +1,5 @@
1
1
  [metadata]
2
- version = 2.0.3
2
+ version = 2.0.5
3
3
 
4
4
  [egg_info]
5
5
  tag_build =
@@ -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
 
@@ -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)
@@ -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.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes