2012-10-14 5 views
1

node.js, socket.io, clusters, redis로 앱을 만들었으며 8 개의 프로세스에서 실행됩니다. 각 프로세스에 고스트 소켓이있을 수 있습니까? 나는 이미 연결이 끊긴 소켓을 의미하지만, 모든 프로세스가 그것에 대해 알고 있고 여전히 가지고있는 것은 아닙니다.socket.io + redis - 유령 소켓 - 가능합니까?

내 응용 프로그램은 연결 이벤트에서 온라인 카운트 (두 방의 소켓 수)를 클라이언트에 보냅니다. 그리고 "HEAD"라는 프로세스는 매 3 초마다 모든 소켓에 "온라인 카운트"를 보냅니다. 나는 왜 그것을 말하고 있는가? 브라우저에서 앱에 연결하면 먼저 8 개의 프로세스 중 하나에서 "온라인 카운트"를 얻고, 60이되게하고 3 초 후에 HEAD 프로세스 "온라인 카운트"에서 얻습니다.하지만 매우 다른 숫자입니다.

그래서 저는 Redis를 통해 프로세스에 동기화되지 않는 것들이 있다고 생각합니다. 가능한가?

답변

1

당신이하고 싶은 것은 가능하지만 매우 복잡한 방식입니다. 또한 비동기 모델은 없지만 대신 폴링하는 node.js를 사용한다고 가정하면 node.js 내의 연결을 폴링하는 것이 더 쉬울 것입니다.

귀하의 질문에 약간 혼란스러워서 충분히 이해할 수 있기를 바랍니다.