diff --git a/Html/apps/extension_ase/ase_client/client.py b/Html/apps/extension_ase/ase_client/client.py
index 433cf3c..66bef43 100644
--- a/Html/apps/extension_ase/ase_client/client.py
+++ b/Html/apps/extension_ase/ase_client/client.py
@@ -45,7 +45,10 @@ class ASEngineClient:
self.sid = self.sio.get_sid(namespace=self.namespace)
print(f"Connected to server. SID: {self.sid}")
if self._on_connect_callback is not None:
- self._on_connect_callback(self._on_connect_callback_entry, self._on_connect_callback_initData)
+ self._on_connect_callback(
+ entry=self._on_connect_callback_entry,
+ init_data=self._on_connect_callback_initData
+ )
# 断开连接事件
@self.sio.on('disconnect', namespace=self.namespace)
@@ -75,17 +78,42 @@ class ASEngineClient:
event.set() # 触发事件,通知等待的线程
def register_on_connect_entry(self, callback: Callable, entry: Any, init_data: Any)->bool:
+ """注册连接事件回调函数
+
+ 参数:
+ - callback: 连接事件回调函数,接受 **kwargs 参数
+ - entry: 回调关联的条目对象
+ - init_data: 初始化数据
+
+ 回调关键字参数:
+ - entry: 回调关联的条目对象
+ - init_data: 初始化数据
+ """
if not callable(callback):
return False
self._on_connect_callback = callback
self._on_connect_callback_entry=entry
self._on_connect_callback_initData=init_data
+ return True
def register_route_with_entry(self, route: str,
callback: Optional[Callable] = None,
entry: Any = None,
init_data: Optional[Any] = None) -> bool:
+ """注册带条目的路由回调函数
+
+ 参数:
+ - route: 路由名称
+ - callback: 回调函数,接受 **kwargs 参数
+ - entry: 回调关联的条目对象
+ - init_data: 初始化数据
+
+ 回调关键字参数:
+ - entry: 回调关联的条目对象
+ - data: 接收到的消息数据
+ - init_data: 初始化数据
+ """
if not route:
print("Route cannot be empty")
return False
@@ -93,7 +121,8 @@ class ASEngineClient:
if callback is None:
bound_cb = self._default_callback
else:
- bound_cb = partial(callback, entry) # 等价于 lambda data, init: callback(entry, data, init)
+ # 使用 partial 绑定 entry 作为关键字参数
+ bound_cb = partial(callback, entry=entry)
self.routes[route] = {
'callback': bound_cb,
@@ -110,7 +139,7 @@ class ASEngineClient:
cb = route_info['callback'] # 已经绑定过 entry
init = route_info.get('init_data')
try:
- cb(data, init) # 现在只传 data / init_data
+ cb(data=data, init_data=init) # 传递关键字参数
except Exception as e:
print(f"Callback error on route '{_route}': {e}")
@@ -118,11 +147,17 @@ class ASEngineClient:
def register_route(self, route: str, callback: Optional[Callable] = None, init_data: Optional[Any] = None):
- """
- 注册一个路由及其回调函数
- :param route: 路由名称
- :param callback: 回调函数,接收消息数据作为参数
- :return: 是否注册成功
+ """注册路由回调函数
+
+ 参数:
+ - route: 路由名称
+ - callback: 回调函数,接受 **kwargs 参数
+ - init_data: 初始化数据
+
+ 回调关键字参数:
+ - entry: 回调关联的条目对象(此处为 None)
+ - data: 接收到的消息数据
+ - init_data: 初始化数据
"""
if not route:
print("Route cannot be empty")
@@ -130,7 +165,9 @@ class ASEngineClient:
# 存储路由和回调
self.routes[route] = {
- 'callback': callback if callback else self._default_callback
+ 'callback': callback if callback else self._default_callback,
+ 'entry': None,
+ 'init_data': init_data
}
# 注册事件处理器
@@ -139,15 +176,26 @@ class ASEngineClient:
print(f"Received message on route '{route}': {data}")
if 'callback' in self.routes[route]:
try:
- self.routes[route]['callback'](None, data, init_data)
+ self.routes[route]['callback'](
+ entry=None,
+ data=data,
+ init_data=init_data
+ )
except Exception as e:
print(f"Error in callback for route '{route}': {e}")
print(f"Route '{route}' registered successfully")
return True
- def _default_callback(self, entry: Any, data: Any, init_data: Optional[Any] = None):
- """默认回调函数"""
+ def _default_callback(self, **kwargs):
+ """默认回调函数
+
+ 关键字参数:
+ - entry: 回调关联的条目对象
+ - data: 接收到的消息数据
+ - init_data: 初始化数据
+ """
+ data = kwargs.get('data', {})
print(f"Default callback received: {data}")
def connect(self, timeout: int = 5) -> bool: