Flask SocketIO 发出多个事件

Flask SocketIO emitting on multiple events

编辑:第一种方法工作正常,我发出了错误的东西

我正在寻找一种在发出事件特定信息的基础上在多个事件上发出相同内容的方法。

我试过这样的方法,但没有用 (我认为这不起作用,因为我无法从 socketIO 上下文之外的方法发出):

@socketio.on("event1")
def handle_event_1(data):
    emit(...)
    do_common_operation(data)

@socketio.on("event2")
def handle_event_2(data):
    emit(...)
    do_common_operation(data)

def do_common_operation(data):
    emit(...)

我也试过类似的方法,但不起作用 (这只执行 event1/event2 或普通操作,但不会同时执行):

@socketio.on("event1")
def handle_event_1(data):
    emit(...)

@socketio.on("event2")
def handle_event_2(data):
    emit(...)

@socketio.on("event1")
@socketio.on("event2")
def do_common_operation(data):
    emit(...)

我或许可以将通用操作代码复制到两个事件处理程序中,但这似乎是一个有点愚蠢的解决方案,因为代码比这个小示例中的要多。

有什么建议可以干净地处理这个问题吗?

第一种方法似乎工作正常,我的代码中有一个错误