添加微信进程退出通知

This commit is contained in:
evilbeast 2022-08-27 14:28:03 +08:00
parent 0cd080dcaf
commit 594cc561cb
3 changed files with 14 additions and 4 deletions

View File

@ -1,6 +1,9 @@
# 用于接收所有的通知消息 # 用于接收所有的通知消息
MT_ALL = 11000 MT_ALL = 11000
# 微信进程退出通知
MT_RECV_WECHAT_QUIT_MSG = 11001
# 第个通知消息,此时已经托管上微信 # 第个通知消息,此时已经托管上微信
MT_READY_MSG = 11024 MT_READY_MSG = 11024

View File

@ -49,8 +49,7 @@ class WeChatMgr(metaclass=Singleton):
if client_id not in self.__instance_map: if client_id not in self.__instance_map:
for instance in self.__instance_list: for instance in self.__instance_list:
if instance.pid == pid: if instance.pid == pid:
instance.client_id = client_id instance.bind_client_id(client_id)
instance.status = True
self.__instance_map[client_id] = instance self.__instance_map[client_id] = instance
bind_instance = instance bind_instance = instance
break break
@ -71,5 +70,4 @@ class WeChatMgr(metaclass=Singleton):
def __on_close(self, client_id): def __on_close(self, client_id):
log.debug("close client_id: %d", client_id) log.debug("close client_id: %d", client_id)
if client_id in self.__instance_map: if client_id in self.__instance_map:
self.__instance_map[client_id].login_status = False self.__instance_map[client_id].on_close()
self.__instance_map[client_id].status = False

View File

@ -68,6 +68,15 @@ class WeChat:
return f return f
return wrapper return wrapper
def on_close(self):
self.login_status = False
self.status = False
self.__msg_event_emitter.emit(str(notify_type.MT_RECV_WECHAT_QUIT_MSG), self)
def bind_client_id(self, client_id):
self.status = True
self.client_id = client_id
def on_recv(self, message): def on_recv(self, message):
log.debug("on recv message: %s", message) log.debug("on recv message: %s", message)
msg_type = message["type"] msg_type = message["type"]