Socket.io 1.1 - 初始连接时如何从客户端发送数据

ma0*_*a08 3 node.js socket.io

我想要类似的功能

客户

var socket=io.connect(url,data);
Run Code Online (Sandbox Code Playgroud)

服务器

io.on('connection',function(socket){
   //get data here in the socket object or in other way
})
Run Code Online (Sandbox Code Playgroud)

我知道可以通过连接后发送来获取数据,但我想知道是否有办法在最初连接时发送数据。

lag*_*lex 5

您能做的最好的事情就是将数据与 URL 一起传递

var socket = io.connect(url + "?data=value");
Run Code Online (Sandbox Code Playgroud)

socket.handshake.query它将在服务器上可用

io.on('connection',function(socket){
    var data = socket.handshake.query.data; // => "value"
});
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用Passport.socketio,您将可以socket.request.user识别用户的身份。