我想请求你的帮助。我在socket.io的客户端遇到困难,我想在客户端调用此代码在socket.io中创建一个房间:
var rooms = [];
socket.on('create', function (roomname) {
rooms[room] = room;
socket.room = roomname;
socket.join(roomname);
subscribe.subscribe(socket.room);
});
我不知道这是否正确,如果没有请帮助我纠正这些家伙。我不是那个在节点js和套接字中专业但我已经读过他们的wiki了。有没有办法创造空间?
谢谢你们。
答案 0 :(得分:85)
不需要创建Socket.IO中的房间,当套接字加入时会创建一个房间。它们在服务器端加入,因此您必须使用客户端指示服务器。
socket.on('create', function (room) {
socket.join(room);
});
在上面的示例中,创建了一个房间,其名称在变量room
中指定。您不需要将此房间对象存储在任何位置,因为它已经是io
对象的一部分。然后,您可以将房间视为自己的套接字实例。
io.sockets.in(room).emit('event', data);
因此,要从客户端创建一个房间,这可能是它的样子:
// client side code
var socket = io.connect();
socket.emit('create', 'room1');
// server side code
io.sockets.on('connection', function(socket) {
socket.on('create', function(room) {
socket.join(room);
});
});