Socket.io: Socket.io Π²Ρ‹Π΄Π°Π» ΠΎΡˆΠΈΠ±ΠΊΡƒ: fn.bind Π½Π΅ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 4 Ρ„Π΅Π²Ρ€. 2016  Β·  18ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: socketio/socket.io

ΠΏΠΎΡ‡Π΅ΠΌΡƒ это происходит ΠΈ ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ? поТалуйста, ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅~

ошибся ΠΎΡ‚ΠΊΡƒΠ΄Π°:
...\socket.io-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€\index.js:195
if (fn) process.nextTick(fn.bind(null, null, sids));

вСрсия socket.io:
1.4.5

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠ½ΠΈΠ³Π΅ 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);

ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

ВсС 18 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠ½Π°Ρ‚Π½ΠΎΠ³ΠΎ Ρ‡Π°Ρ‚Π° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Β«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

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ