2014-09-05 2 views
7

나는이 질문에 대한 답을 찾기 위해 노력했다. 그리고 나는 그것이 오래된 것이지 "아니다"또는 "미래에있을 것이다"라는 것을 발견 할 수있다.Socket.io는 Heroku에서 전혀 작동합니까?

나는 socket.io-redis을 사용해 보았습니다. Heroku에서는 하나의 dyno가 작업 소켓을 만들 것이며 그 이상의 소켓을 만들면 Socket.io에서 다음과 같은 오류가 발생할 것입니다. 즉 스케일링이 발생하지 않습니다.

{ "코드": 1, "메시지": "세션 ID 알 수없는이"}

정말 개발자에 대한 잔인한 농담 나 웹 소켓에 "지원"Heroku가 가지고 주장하는 것 같다.

편집 : Heroku는 웹 소켓을 지원하지만 Redis를 사용하는 socket.io 클러스터링에서는 작동하지 않습니다. 따라서 소켓 전용 인스턴스 하나만 실행합니다. 언제 Heroku와 소켓을 사용하고 싶습니다.

답변

2

공개 : 나는 Heroku의 Node.js 플랫폼 소유자입니다.

tl; dr : 우리는 private-beta에서 multi-dyno socket.io를 지원합니다.

Heroku는 세션 선호도가 필요없는 WebSocket을 완벽하게 지원하며 socket.io와는 다릅니다.

Socket.io는 WebSocket을 많은 잠재 전송 수단 중 하나로 사용하는보다 높은 수준의 소프트 실시간 추상화입니다. Socket.io 에 세션 선호도가 필요하고 socket.io (Heroku 또는 다른 곳에서)의 다중 노드 이벤트 공유 구현에는 socket.io-redis (또는 이와 유사)가 필요합니다.

끈적 세션의 대부분의 구현은 12factor architecture을 나눕니다. 이제는 socket.io, meteor 및 sockjs 사용자를 위해 유연하고 확장 가능한 flip-switch sticky 세션 베타가 실행됩니다. 추가하려면 [email protected]으로 이메일을 보내십시오. 우리는 앞으로 몇 주 안에 대중에게 공개 할 것입니다.

관련 문제