我有一个使用Flask的Python服务器,它使用Flask-SocketIO进行websocket连接。还有一个类似的问题: Send custom data along with handshakeData in socket.io?我的想法是做同样的事情,而不是使用Node,使用Flask。我希望客户端在connect事件中发送一些数据,例如:
var socket = io("http://127.0.0.1:3000/", { query: "foo=bar" });
我还没有能够获得自定义数据,而且由于客户端的框架,我无法依赖Cookie。一个有效的解决方案是像往常一样拥有connect事件,然后在自定义事件中将该信息作为有效负载获取。但我们想要的只是做一个连接事件。谢谢!
答案 0 :(得分:1)
正如米格尔在评论中所说,你可以简单地做到
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)
在服务器端。
答案 1 :(得分:0)
在服务器端调用全局连接方法。但不是我的特定命名空间的连接方法。名称空间是否支持查询参数?
客户代码
const socket = io.connect('http://127.0.0.1:5000/ds', { query: {name: "Test"} });
服务器代码
@socketio.on('connect', namespace='/ds')
def test_connect():
foo = request.args.get('foo')
print("CONNECT DS")