额外的参数与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中的技术。