【发布时间】:2021-07-26 09:33:58
【问题描述】:
我有 2 个处理程序:
@sio.event
async def connect(sid, environ):
print('connect', sid)
@sio.event
async def disconnect(sid, environ):
# perform some user management stuff
# perform some cleaning as well
print('disconnect', sid)
我想触发disconnect 事件处理程序(因为我想在断开连接时执行一些特定操作),但是在一个名为leaveWorkbench 的自定义事件上。
-
sio.disconnect()协程是否真的调用了偶数处理程序disconnect? - 我应该以这种方式发出事件
disconnect:
@sio.event
async def leaveWorkbench(sid):
await sio.emit('disconnect')
(从文档看来,“保留”不是一个好主意(?)+它会被客户抓住,所以可能不是一个可行的解决方案)
- 或者我应该简单地将事件处理程序作为一种方法?使用
sio.discconect
async def disconnect_handler(sid):
# operations to be performed on disconnection
await sio.disconnect(sid)??
@sio.event
async def leaveWorkbench(sid):
await disconnect_handler(sid)
@sio.event
async def disconnect(sid):
await disconnect_handler(sid)
- 最后,还有其他“更清洁”的选择吗?
重要提示:我在断开连接时使用
session对象
【问题讨论】:
标签: python socket.io python-socketio