Socket.io: Socket.ioμ—μ„œ err:fn.bindκ°€ ν•¨μˆ˜κ°€ μ•„λ‹™λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 02μ›” 04일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: socketio/socket.io

μ™œ λ°œμƒν•˜κ³  μ–΄λ–»κ²Œ κ³ μΉ  수 μžˆμŠ΅λ‹ˆκΉŒ? λ„μ™€μ£Όμ„Έμš”~

μ–΄λ””μ—μ„œ 였λ₯˜:
...\socket.io-adapter\index.js:195
if (fn) process.nextTick(fn.bind(null, null, sids));

socket.io 버전:
1.4.5

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜λŠ” NodeJs in action μ±…μ—μ„œ 예제λ₯Ό ν™•μΈν–ˆμœΌλ©°, μ΅œμ‹  λ²„μ „μ˜ 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 in action" μ±…μ—μ„œ λ©€ν‹°λ£Έ μ±„νŒ… μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜λŠ” λ™μ•ˆ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

<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"
  }

BTW, 여기에 λŒ“κΈ€μ„ 달기 전에 socket.io μ‚¬μ΄νŠΈμ—μ„œ Migration from 0.9 νŽ˜μ΄μ§€λ₯Ό μ½μ—ˆμ§€λ§Œ 해결책을 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

ν•„μš”ν•œ 경우 κ°„λ‹¨ν•œ μ±„νŒ… ν”„λ‘œμ νŠΈλ₯Ό μ–΄λ”˜κ°€μ— μ—…λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€(맀우 μž‘μŒ).

λ‚˜λŠ” NodeJs in action μ±…μ—μ„œ 예제λ₯Ό ν™•μΈν–ˆμœΌλ©°, μ΅œμ‹  λ²„μ „μ˜ 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 κ°μ‚¬ν•©λ‹ˆλ‹€

@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μ—μ„œ

thnx @CheckMater

thnx @CheckMater

thx @CheckMater

@CheckMater κ°μ‚¬ν•©λ‹ˆλ‹€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰