2012-05-05 7 views
2

사용자에게 트윗을 '전송'하는 node.js 응용 프로그램이 있습니다. 현재로서는 트위터에서 하드 코딩 된 문자열을 검색하지만 사용자가 URL에이 URL을 구성하도록 허용하려고합니다 (예 : /?q=stackoverflow을 방문하여). 각 사용자가 트윗을 동시에 의 다른 스트림을 볼 수 있습니다node.js 및 socket.io : 다른 "세션"에 대한 다른 연결

app.get('/', function (req, res) { 

    // page rendering skipped 

    io.sockets.on('connection', function (socket) { 
     twit.stream('user', {track: 'stackoverflow'}, function(stream) { 
      stream.on('data', function (data) { 
       socket.volatile.emit('tweet', data); 
      } 
     }); 
    }); 
}); 

이 문제는, 어떻게 그것을해야합니까 될 수 있도록이 같은 비트 순간

, 내 코드가 보인다? 현재로서는 단일 브라우저 탭에서 제대로 작동하지만 두 번째 탭이 열리 자마자 넘어져서 오류가 socket.io 내부에서 상당히 깊어집니다. 내가 잘못 사용하고 있니?

나는 아직 socket.io 주위에 내 머리를 가지고 있지 않아 문제가 될 수 있습니다.

미리 감사드립니다.

답변

0

새 요청이 들어올 때마다 연결 콜백을 io.sockets.on으로 다시 정의합니다. io 객체의 초기화 문 다음에 app.get 외부에서 해당 코드 블록을 이동해야합니다.

+0

그렇다면'io.sockets.on'이'app.get'의 바깥에 있으면 소켓으로 방출되는 것을 어떻게 바꿀 수 있습니까? –

+0

변경하고자하는 것이 확실하지 않지만 socket.io가 websocket 요청을 올바르게 처리하는 반면 app.get은 http 요청을 처리한다는 것을 알고 있습니까? 다른 프로토콜의 요청 처리기 내에 한 프로토콜의 요청 처리기를 정의하고 있습니다. node.js 방법은 전달하고 수정하는 전역 상태를 갖는 것입니다. – snez

관련 문제