diff --git a/pyscript.core/package-lock.json b/pyscript.core/package-lock.json index 50a1e31c..eecbd82a 100644 --- a/pyscript.core/package-lock.json +++ b/pyscript.core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@pyscript/core", - "version": "0.4.26", + "version": "0.4.27", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@pyscript/core", - "version": "0.4.26", + "version": "0.4.27", "license": "APACHE-2.0", "dependencies": { "@ungap/with-resolvers": "^0.1.0", diff --git a/pyscript.core/package.json b/pyscript.core/package.json index 73bde472..95d5cd74 100644 --- a/pyscript.core/package.json +++ b/pyscript.core/package.json @@ -1,6 +1,6 @@ { "name": "@pyscript/core", - "version": "0.4.26", + "version": "0.4.27", "type": "module", "description": "PyScript", "module": "./index.js", diff --git a/pyscript.core/src/stdlib/pyscript/websocket.py b/pyscript.core/src/stdlib/pyscript/websocket.py index 2e351bcd..7ce46ddd 100644 --- a/pyscript.core/src/stdlib/pyscript/websocket.py +++ b/pyscript.core/src/stdlib/pyscript/websocket.py @@ -30,21 +30,24 @@ class WebSocket(object): def __init__(self, **kw): url = kw["url"] - socket = None if protocols in kw: socket = js.WebSocket.new(url, kw[protocols]) else: socket = js.WebSocket.new(url) object.__setattr__(self, "_ws", socket) + for t in ["onclose", "onerror", "onmessage", "onopen"]: + if t in kw: + socket[t] = kw[t] + def __getattr__(self, attr): return getattr(self._ws, attr) def __setattr__(self, attr, value): if attr == "onmessage": - setattr(self._ws, attr, lambda e: value(EventMessage(e))) + self._ws[attr] = lambda e: value(EventMessage(e)) else: - setattr(self._ws, attr, value) + self._ws[attr] = value def close(self, **kw): if code in kw and reason in kw: diff --git a/pyscript.core/test/ws/index.html b/pyscript.core/test/ws/index.html index fe8ad729..a850f0ea 100644 --- a/pyscript.core/test/ws/index.html +++ b/pyscript.core/test/ws/index.html @@ -22,10 +22,12 @@ print(event.type) document.documentElement.classList.add("ok") - ws = WebSocket(url="ws://localhost:5037/") - ws.onopen = onopen - ws.onmessage = onmessage - ws.onclose = onclose + ws = WebSocket( + url="ws://localhost:5037/", + onopen=onopen, + onmessage=onmessage, + onclose=onclose + )