나는 Reddy와 함께 Node.js와 Socket.io를 사용하여 Heroku에 앱을 배포하려고합니다. 나는 XHR 긴 폴링을 specified by Heroku으로 사용하도록 Socket.io를 설정했으며, 하나의 dyno 만 있으면 완벽하게 작동하지만 다중 dynos를 사용하도록 크기를 조절할 때는 작동하지 않습니다. 내가 사용하여 최대 크기를 조절할 때Node.js와 함께 Heroku에서 Socket.io와 Redis 사용하기
처음에 나는 Socket.io에 MemoryStore를 사용했고, "Heroku가 추신 : 규모의 웹 = 2"가 간헐적으로 작동하고, 클라이언트에서이 오류를주고 시작 :
Uncaught TypeError: Property 'open' of object #<Transport> is not a function
는 나는 그래서
"여러 과정 및/또는 여러 서버 당신이 중간에 사람으로 레디 스 형 NoSQL 데이터베이스를 사용하여 우리의 RedisStore을 사용할 수 있습니다로 확장하려는 경우", 내가 만든 Socket.io documentation하는 발견 RedisStore :
617,451,515,및 구성 Socket.io는이 기능을 사용하려면
//set up Web Socket Server
io.configure(function() {
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10);
io.set('store', newRedisStore);
});
그리고 모든 로컬 및 Heroku가 하나의 웹 다이노와 함께 완벽하게 작동합니다. 그러나 하나 이상의 프로세스로 확장하자마자 간헐적으로 다시 작업하지 않습니다. 이제는 오류가 발생하지 않습니다. 그래서 여기서 어디로 가야할 지 모르겠습니다.
이 내가이 개 프로세스와 Heroku가에서 받고 있어요 로그는 다음과 같습니다
2012-06-16T15:36:12+00:00 app[web.2]: debug: setting poll timeout
2012-06-16T15:36:12+00:00 app[web.2]: debug: clearing poll timeout
2012-06-16T15:36:12+00:00 app[web.2]: debug: xhr-polling writing
7:::1+0 2012-06-16T15:36:12+00:00 app[web.2]: warn: client not
handshaken client should reconnect 2012-06-16T15:36:12+00:00
app[web.2]: debug: set close timeout for client 15718037491002932534
2012-06-16T15:36:12+00:00 app[web.2]: debug: cleared close timeout for
client 15718037491002932534 2012-06-16T15:36:12+00:00 app[web.2]:
info: transport end (error) 2012-06-16T15:36:12+00:00 app[web.2]:
debug: discarding transport
감사합니다. 그게 올바른 방향으로 움직이는 것 같지만 작동시키지 못합니다. Socket.io는 클러스터를 사용할 때 방출시 오류를 계속 발생시킵니다. – tomgersic
[timeout] (https://devcenter.heroku.com/articles/request-timeout#longpolling_and_streaming_responses)을 늘려보고 알려주세요. 또한 코드를 게시 할 수 있으므로 pastebin.com 또는 그 종류를 사용하여 분석 할 수 있습니다. –