ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° socket.rooms , ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ:
Π₯ΡΡ ΡΡΡΠΎΠΊ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ.
ΠΠ΅ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π½:
io.on('connection', function(socket){
socket.join('room 237', function(){
console.log(socket.rooms); // [ <socket.id>, 'room 237' ]
io.to('room 237', 'a new user has joined the room'); // broadcast to everyone in the room
});
});
ΠΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ console.log(socket.rooms);
, Ρ _ Ρ
ΠΎΡΡ_ ΡΡΠΎΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (ΡΡΠΎΠ±Ρ Ρ ΠΌΠΎΠ³ ΠΎΡΡΠ΅Π·Π°ΡΡ
io.on('connection', function(socket){
socket.join('room 237', function(){
console.log(socket.rooms); // { <socket.id>: '<socket.id>', 'room 237': 'room 237' }
});
});
... ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² Ρ .keys()
Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΡΡΠ½ΡΡ Π²ΡΠ±ΡΠ°ΡΡ socket.id
(ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠΌ).
ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°? ΠΠΎΠ»ΡΠ·ΡΡΡΡ 1.7.3.
Π§ΡΠΎ ΠΆ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°, rooms
ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡΠ» ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 1.4, Ρ Π΄ΡΠΌΠ°Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Ρ Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΌΠ°Ρ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ socket.io ΡΠ½ΠΎΠ²Π° ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ: Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ!
ΠΠΎΡ ΡΠ΅Π»Ρ Π·Π΄Π΅ΡΡ - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ. Π‘ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ socket.id
Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΌ:
var rooms = socket.rooms.slice(1);
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ:
var roomKeys = Object.keys(socket.rooms);
var socketIdIndex = roomKeys.indexOf( socket.id );
var rooms = roomKeys.splice( socketIdIndex, 1 );
ΠΡΠ»ΠΈ Π±Ρ socket.id
Π½Π΅ Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π― ΠΏΡΠΎΡΡΠΎ Π½Π΅ Ρ
ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ.
var rooms = Object.keys(socket.rooms);
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΌΠΎΠ³ Π±Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (Π²Π΅ΡΠ½ΠΎ?):
var roomKeys = Object.keys(socket.rooms);
var rooms = roomKeys.filter(function(key){
return socket.rooms[key]==true;
});
ΠΡΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Ρ indexOf()
.
ΠΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ ΡΠ°ΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ). Π― ΠΏΡΠΎΡΡΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° Π±Ρ Π»ΡΡΡΠ΅ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ Server
:
var allRooms = io.rooms;
var myRooms = socket.rooms;
Π£ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅ Π΅ΡΡΡ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ?
ΠΠ°, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Β«ΠΊΠΎΠΌΠ½Π°ΡΡΒ»? ΠΠ»ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ . ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ - ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ, Π²Ρ Π² Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ.
['room1', 'room2', 'room3']
Π, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, io.rooms, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ Π²ΡΠ΅ Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠΎΠΊ, Π»ΠΈΠ±ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ½Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
{
room1: ['id1', 'id2', 'id3'],
room2: ['id4', 'id5', 'id6']
}
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° - ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ ΠΊ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ 100, Π±ΡΠ»ΠΎ Π±Ρ Π±ΡΡΡΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ Π»ΠΈ ΠΎΠ½ ΠΊ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π° Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΌΠΎΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΡ Π½Π° stackoverflow
{
"room1":"room1",
"room2":"room2",
...
"room100":"room100"
}
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
if(socket.rooms[roomID]) return true;
ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΠΏ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ indexOf ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²:
if(socket.rooms.indexOf(roomID) != -1) return true;
ΠΠΎ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅:
{ room1: true, ... , room100: true }
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ
Π― Π±Ρ Π½Π΅ ΠΏΡΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ socket.rooms ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°Π΄ ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ? Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΡΠ°ΠΉΠ»Π° CONTRIBUTING.md.
Π Π°Π·Π²Π΅ Set
ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΌΡΡΠ»Π°?
if (socket.rooms.has(roomID)) return true;
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΡΠΊΡΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Set(4)Β {"<socket ID>", "room1", "room2", "room3"}
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½Π°. Π― Π²Π΅ΡΡ Π² javascript.
Π Socket.IO v3 Socket#rooms
ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Set ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ, ΡΠΌ. ΠΠ΄Π΅ΡΡ .
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Β«ΠΊΠΎΠΌΠ½Π°ΡΡΒ»? ΠΠ»ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ . ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ - ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ, Π²Ρ Π² Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ.
['room1', 'room2', 'room3']
Π, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, io.rooms, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ Π²ΡΠ΅ Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠΎΠΊ, Π»ΠΈΠ±ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ½Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
{ room1: ['id1', 'id2', 'id3'], room2: ['id4', 'id5', 'id6'] }