Added listeners to the constructing kw options (#2044)

This commit is contained in:
Andrea Giammarchi
2024-05-03 16:34:21 +02:00
committed by GitHub
parent d1d1c5740f
commit c49cb9231b
4 changed files with 15 additions and 10 deletions

View File

@@ -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: