我不确定我了解套接字的服务器端配置。Socket.io回调函数参数混淆
var app = express();
var server = require('http').createServer(app);
var socketio = require('socket.io')(server, {
serveClient: config.env !== 'production',
path: '/socket.io-client'
});
这里,代码根据api引用创建一个与http服务器“连接”的套接字服务器。什么是附加?
socketio.on('connection', function (socket) {
socket.on('create', function(room) {
console.log('joining a room');
socket.join(room);
console.log('socket joined room: ', room);
});
socket.address = socket.handshake.address !== null ?
socket.handshake.address.address + ':' + socket.handshake.address.port :
process.env.DOMAIN;
socket.connectedAt = new Date();
// Call onDisconnect.
socket.on('disconnect', function() {
onDisconnect(socket);
console.info('[%s] DISCONNECTED', socket.address);
});
// Call onConnect.
onConnect(socket);
console.info('[%s] CONNECTED', socket.address);
});
};
问题:在这里,'套接字'变量是服务器还是客户端?如果它是服务器的话,为什么socket.join(房间)工作? (客户端被添加到一个房间)如果是客户端,那么为什么它必须听'创建'事件(客户端发出一个名为create的事件来改变房间)。
来结束,我被三个'socket'在下面的代码中。
socketio.on('connection', function (socket) {
socket.on('create', function(room) {
console.log('joining a room');
socket.join(room);
console.log('socket joined room: ', room);
});
});
非常感谢!你的解释很棒! –