【问题标题】:flask-socketio not handling eventsflask-socketio 不处理事件
【发布时间】:2022-12-16 05:30:46
【问题描述】:

您好,我无法处理从 python 客户端到 python 服务器(flask socket-io)的 socketio 事件。两者都在连接。但是事件没有被处理

环境注意事项: 我的客户端在 Hyper V 来宾上。我添加了一个虚拟适配器。主机IP是10.10.10.1

服务器:

app = Flask(__name__)
sio = SocketIO(app,logger=True, engineio_logger=True)
sio.run(app,host='10.10.10.1',port=5555)

@sio.on("event")
def ev_handle(data):
    emit("NO")
    print("printme")

客户:

sio=socketio.Client(logger=True, engineio_logger=True)
sio.connect("http://10.10.10.1:5555")
while True:
    input("say something to emit event\n")
    sio.emit("event",data="bob")

客户端输出:

服务器输出:

到目前为止尝试过的解决方案:

  • 不同的事件名称,尝试连接,尝试使用@sio.event
  • 尝试写入文件以查看打印是否是问题所在 我的代码似乎很合理。我不知道为什么它不起作用。防火墙似乎不是问题,因为正在发送/接收 PING 和 PONG

【问题讨论】:

    标签: python socket.io flask-socketio python-socketio


    【解决方案1】:

    如果有人正在寻找修复程序,您需要在调用运行之前实现处理程序:

    app = Flask(__name__)
    sio = SocketIO(app,logger=True, engineio_logger=True)
    
    @sio.on("event")
    def ev_handle(data):
        emit("NO")
        print("printme")
    
    sio.run(app,host='10.10.10.1',port=5555)
    

    【讨论】: