2012-03-08 1 views
1

express, redis, mongo 및 socket.io가 포함 된 내 node.js 앱이 완벽하게 작동합니다. 내가 클러스터를 도입 할 때 오늘, 나는 그것이 작동 찾았지만, 메시지의 많은클라이언트가 핸드 셰이크되지 않은 클라이언트가 클러스터에 socket.io를 다시 연결해야합니다.

'client not handshaken' 'client should reconnect' 

많은 최대 socket.io의 응답 시간이 아주 나쁜하는 시간, 몇 초는 응용 프로그램에 의해있다.

그런 다음 http-proxy 프런트 엔드를 사용하여 브라우저의 요청을 종료했습니다. Chrome은 이러한 메시지를 표시하지 않고 간헐적으로 작동합니다. 때로는 동일한 URL을 다시 열면 이러한 메시지가 표시되기 시작하고 응답이 지연됩니다. Firefox도 같은 방식으로 작동합니다. 무작위로,이 메시지를 지속적으로 던지기 시작합니다 .. 클러스터 환경에서 websocket에 문제가있는 것 같습니다. 버전은 0.6.10이다

내 Node.js를은, 2.5.9 표현, HTTP 프록시 0.8.0

Socket.IO 메모리에 연결을 유지하기 때문에이 대부분의 아마

답변

3

를 0.9.0 Socket.IO에 그래서 각 서버는 자신의 클라이언트 세트를 가질 것입니다. 여러 서버 인스턴스에서 Socket.IO를 공유하려면 RedisStore을 사용하십시오. connect-redis 옵션이있는 Express 세션에도 동일하게 적용됩니다.

+5

redis db를 설정하지 않으려면 [다른 해결책] (https://github.com/fent/socket.io-clusterhub)을 클릭하십시오. – fent

+0

감사합니다. 나는 이것이 이것이 문제라고 의심했다. 방금 socket.io-clusterhub를 보았습니다. 좋은 접근 방법 인 것 같습니다. 그 덕분입니다. 이걸 시도해 .. 다시 한번 감사드립니다. – user644745

+0

은 매력처럼 작동합니다. 고맙습니다. – user644745

관련 문제