如何在socket.io中使用连接发送额外参数?因此,当客户端连接时,它们会发送附加信息,而服务器端则会收到它
io.on('connection',function(client,param1,param2,param3) { // app code }
解决方法
这是一个应该工作的小技巧.首先,您创建自己的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',my_info) { // Do your thing here client.on('message',...); // etc etc }
这是我用来将我的会话处理链接到Socket.IO的技术,用于我编写的包.