2012-05-15 2 views
4

heroku에서 Node.js 응용 프로그램을 확장하는 데 문제가 있습니다. RedisStore를 사용하여 노드 프로세스간에 소켓 연결을 유지합니다. 저는 2, 3 프로세스로 확장되었습니다. 이 코드는 여기 https://gist.github.com/1391583을 따랐습니다. 한 프로세스에서 모든 것이 잘 작동하지만 스케일 아웃하면 브로드 캐스트가 다른 노드에 도달하지 않습니다. 연결 정보는 계속되지만, 나는 끊임없는 핸드 쉐이크 오류와 연결 해제를 얻지 못합니다.Socket.IO RedisStore 및 xhr-polling

제 생각에는 socket.io RedisStore는 여러 프로세스를 동기화 상태로 유지하기 위해 내부적으로 redis Pub/Sub를 처리합니다. 여기에 언급했듯이 https://groups.google.com/forum/?fromgroups&hl=en#!topic/socket_io/gymBTlruYxs 그리고 그런데 # 848 socket.io 패치를 적용했는데 문제가 해결되지 않았습니다.

2012 년 5 월 14 일 현재 Heroku는 socket.io에 대한 xhr-polling 전송 만 지원합니다. 이는 내가 사용하고있는 것입니다. 긴 폴링에만이 문제가 있습니까? 이 문제를 해결할 수 있습니까?

미리 감사드립니다.

답변

0

내 자신의 Redis 레이어를 구현하여이를 해결했습니다. 다른 인스턴스에 배포 된 모든 노드 서버가 중앙의 Redis 서버에 가입하고 소켓 대신 Redis의 메시지를 수신했습니다. 그것은 websockets 및 xhr 폴링을 위해 일했습니다.

+0

안녕하세요 @agwntr, 좋은 소식입니다. 우리와 어떤 코드를 공유 하시겠습니까? 많은 시간 동안이 일을하고 있습니다! – AmpT

1

죄송합니다. 이것이 완전히 관련이 없지만 확장 성, 노드, redis 및 pub/sub가 필요한 문제가 발생하면 Beseda을 생각해보십시오.이 문제는 사용자가 조사해야 할 사항입니까?