额外的参数与socket.io

我怎样才能发送额外的参数与socket.io中的连接? 所以当一个客户端连接时,他们会发送额外的信息,并在服务器端收到

io.on('connection', function(client, param1, param2, param3) { // app code } 

这是一个应该工作的小窍门。 首先,创build自己的Socket客户端,在第一个连接(包含所有附加信息)上发送消息。

 // Client side io.MySocket = function(your_info, host, options){ io.Socket.apply(this, [host, options]); this.on('connect', function(){ this.send({__special:your_info}); }); }; io.util.inherit(io.MySocket, io.Socket); var my_info = {a:"ping"} var socket = io.MySocket(my_info); 

然后在服务器端,修改套接字来侦听特殊消息并在事件发生时触发事件。

 // Server side var io = require('socket.io').listen(app); io.on('connection', function(client){ client.on('message', function(message){ if (message.__special) { io.emit('myconnection', client, message.__special); } }); }); io.on('myconnection', function(client, my_info) { // Do your thing here client.on('message', ...); // etc etc } 

这是我用来将我的会话处理链接到我编写的包的Socket.IO中的技术。