我想请你帮忙。我在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。有没有可能创造空间的方法?
不需要创建Socket.IO中的房间,而是在套接字加入时创建一个房间。它们是在服务器端加入的,因此您必须指示服务器使用客户端。
socket.on('create', function (room) { socket.join(room); });
在上面的示例中,创建了一个房间,该房间具有在variable中指定的名称room。您无需将此房间对象存储在任何地方,因为它已经是io对象的一部分。然后,您可以将房间视为其自己的套接字实例。
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); }); });