ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ? ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅~
ΠΎΡΠΈΠ±ΡΡ ΠΎΡΠΊΡΠ΄Π°:
...\socket.io-Π°Π΄Π°ΠΏΡΠ΅Ρ\index.js:195
if (fn) process.nextTick(fn.bind(null, null, sids));
Π²Π΅ΡΡΠΈΡ socket.io:
1.4.5
Π― ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠ° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Β«Node.js Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈΒ».
<MY_PATH>\chatrooms\node_modules\socket.io-adapter\index.js:195
if (fn) process.nextTick(fn.bind(null, null, sids));
^
TypeError: fn.bind is not a function
at Adapter.clients (<MY_PATH>\chatrooms\node_modules\socket.io-adapter\index.js:195:31)
at Namespace.clients (<MY_PATH>\chatrooms\node_modules\socket.io\lib\namespace.js:253:16)
at joinRoom (<MY_PATH>\chatrooms\lib\chat_server.js:71:32)
at Namespace.<anonymous> (<MY_PATH>\chatrooms\lib\chat_server.js:20:5)
at emitOne (events.js:90:13)
at Namespace.emit (events.js:182:7)
at Namespace.emit (<MY_PATH>\chatrooms\node_modules\socket.io\lib\namespace.js:206:10)
at <MY_PATH>\chatrooms\node_modules\socket.io\lib\namespace.js:174:14
at _combinedTickCallback (node.js:370:9)
at process._tickCallback (node.js:401:11)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ:
"dependencies": {
"mime": "^1.3.4",
"socket.io": "^1.4.5"
}
ΠΏΠΎΠΊΠ° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π΅
"dependencies": {
"socket.io": "~0.9.6",
"mime": "~1.2.7"
}
ΠΡΡΠ°ΡΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ, Ρ ΠΏΡΠΎΡΠΈΡΠ°Π» ΡΡΡΠ°Π½ΠΈΡΡ ΠΠΈΠ³ΡΠ°ΡΠΈΡ Ρ 0.9 Ρ ΡΠ°ΠΉΡΠ° socket.io, Π½ΠΎ Π½Π΅ Π½Π°ΡΠ΅Π» ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π― ΠΌΠΎΠ³Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΡΠ΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠ°, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ (ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ).
Π― ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠ½ΠΈΠ³Π΅ NodeJs Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ, ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ socket.io, Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ 2 ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΡ:
var usersInRoom = io.sockets.clients(room);
Π:
var usersInRoom = io.of('/').in(room).clients;
ΠΈ ΠΈΠ·:
socket.emit('rooms', io.sockets.manager.rooms);
ΠΊ:
socket.emit('rooms', io.of('/').adapter.rooms);
ΠΡΠΈΠ²Π΅Ρ!
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠ²Π°ΠΊ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater . ΠΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ var usersInRoom = io.of('/').in(room).clients;
Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΡΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ.
io.of('/').in(room).clients(function(error,clients){
var otherUsers = [];
for(var i in clients){
if(socket.id != clients[i]) otherUsers.push(nickNames[clients[i]]);
}
var userSummary = 'Users Currently in ' + room + ' are : ' + otherUsers.join(', ') + '.';
socket.emit('message',{text:userSummary});
});
console.log(io.of('/').in(room).clients);
ReferenceError: ΠΊΠΎΠΌΠ½Π°ΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ : Π² findClientsSocket
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
ΡΠΏΠ°ΡΠΈΠ±ΠΎ @CheckMater
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠ½ΠΈΠ³Π΅ NodeJs Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ, ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ socket.io, Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ 2 ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΡ:
var usersInRoom = io.sockets.clients(room);
Π:
var usersInRoom = io.of('/').in(room).clients;
ΠΈ ΠΈΠ·:
socket.emit('rooms', io.sockets.manager.rooms);
ΠΊ:
socket.emit('rooms', io.of('/').adapter.rooms);
ΠΡΠΈΠ²Π΅Ρ!