- provide loop at ws::connect
This commit is contained in:
@@ -44,7 +44,7 @@ class WsClient:
|
||||
return
|
||||
|
||||
print("handler: got connection to {}".format(websocket.remote_address))
|
||||
self.listener.on_connect()
|
||||
self.listener.on_connect(self.loop)
|
||||
try:
|
||||
path = "/"
|
||||
consumer_task = asyncio.ensure_future(self.handler_recv(websocket, path), loop=self.loop)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import abc
|
||||
|
||||
class IConnection:
|
||||
@abc.abstractmethod
|
||||
def on_connect(self):
|
||||
def on_connect(self, loop):
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
|
||||
+3
-3
@@ -47,7 +47,7 @@ class Value:
|
||||
class MessageDispatcher(IConnection):
|
||||
def __init__(self):
|
||||
self.msg_handlers: MsgIo = []
|
||||
self.state = asyncio.Queue()
|
||||
self.state = None
|
||||
|
||||
def msgio_get(self, key):
|
||||
obj = MsgIo(key, self.send)
|
||||
@@ -56,8 +56,8 @@ class MessageDispatcher(IConnection):
|
||||
return obj
|
||||
return None
|
||||
|
||||
def on_connect(self):
|
||||
pass
|
||||
def on_connect(self, loop):
|
||||
self.state = asyncio.Queue(loop=loop)
|
||||
|
||||
def on_disconnect(self):
|
||||
pass
|
||||
|
||||
@@ -21,6 +21,7 @@ class WsServerMultiUser(WsServer):
|
||||
self.listener = listener
|
||||
self.USERS = UserSet()
|
||||
self.global_state = {}
|
||||
self.listener.on_connect(self.loop)
|
||||
|
||||
async def notify_state(self, data):
|
||||
if self.USERS: # asyncio.wait doesn't accept an empty list
|
||||
|
||||
Reference in New Issue
Block a user