使用 Flask-SocketIO 自定义握手数据

Nay*_*sas 5 python sockets flask flask-socketio

我有一个使用 Flask 的 Python 服务器,它有一个使用Flask-SocketIO 的websocket 连接。还有一个类似的问题: 在socket.io中发送自定义数据和handshakeData?我们的想法是做同样的事情,但不使用 Node,而是使用 Flask。我希望客户端在连接事件中发送一些数据,例如:

var socket = io("http://127.0.0.1:3000/", { query: "foo=bar" });
Run Code Online (Sandbox Code Playgroud)

我无法获取自定义数据,并且由于客户端框架的原因我无法依赖 cookie。一个有效的解决方案是像往常一样进行连接事件,然后在自定义事件中将该信息作为有效负载获取。但我们想要的是只需要执行一个连接事件。谢谢!

Rou*_* B. 5

正如米格尔在他的评论中建议的那样,你可以简单地做

from flask import Flask
from flask import request

app = Flask(__name__)
socketio = SocketIO(app)

@socketio.on('connect')
def connect():
    foo = request.args.get('foo')
    # foo will be 'bar' when a client connects

socketio.run(app)
Run Code Online (Sandbox Code Playgroud)

在服务器端。