Socket.io: Socket.io рдиреЗ рдЧрд▓рддреА рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛: fn.bind рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдлрд╝рд░ре░ 2016  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: socketio/socket.io

рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВ~

рдХрд╣рд╛рдБ рд╕реЗ рддреНрд░реБрдЯрд┐:
...\socket.io-adapter\index.js:195
if (fn) process.nextTick(fn.bind(null, null, sids));

рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рд╕рдВрд╕реНрдХрд░рдг:
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 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

"рдиреЛрдб.рдЬреЗрдПрд╕ рдЗрди рдПрдХреНрд╢рди" рдкреБрд╕реНрддрдХ рд╕реЗ рдорд▓реНрдЯреАрд░реВрдо рдЪреИрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА

<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 рд╕реЗ рдкрдврд╝рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ рдХрд╣реАрдВ рднреА рд╕рд╛рдзрд╛рд░рдг рдЪреИрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ)ред

рдореИрдВрдиреЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ 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);

рдЕрднрд┐рд╡рд╛рджрди!

thnx @ CheckMater

thnx @ CheckMater

thnx @ CheckMater

thnx @ CheckMater

thnx @ 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);

рд╕рдВрджрд░реНрдн рддреНрд░реБрдЯрд┐: рдХрдорд░реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ : findClientsSocket рдкрд░

thnx @ CheckMater

thnx @ CheckMater

thx @ CheckMater

рдзрдиреНрдпрд╡рд╛рдж @ CheckMater

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

doughsay picture doughsay  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬрдм рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб 'рд╢рд╛рдорд┐рд▓' рд╣реЛ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 'рдкрд╣реБрдВрдЪ-рдирд┐рдпрдВрддреНрд░рдг-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐' рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХрд╛ рдорд╛рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб '*' рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрддреНрдкрддреНрддрд┐ 'http://localhost:3000' рдЗрд╕рд▓рд┐рдП рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред XMLHttpRequest рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдореЛрдб withCredentials рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
akasrai picture akasrai  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

karmac2015 picture karmac2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Aweather picture Aweather  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Elliot9 picture Elliot9  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ