2013-06-16 2 views
1

У меня есть длинный хост, который мне нужно поддерживать, даже когда система простаивает. Для этого я пробовал все: от длительной длительности опроса до серверных и клиентских сообщений пинг-понга, но ничего не работает, поскольку сокет отключается через некоторое время, скажем, 1 час. Но соединение сокета должно быть живым, пока я его не закрою вручную.Как сохранить сокет в node.js в appfog

Как это достичь?

Также самая последняя версия node.js semms для поддержки socket.setTimeOut (0), с помощью которой я могу держать сокет открытым неопределенно, но метод setTimeOut, по-видимому, не существует для сокета в используемой версии, поскольку он показывает метод не определена ошибка. Версия узла, которую я использую, равна 0,8.

Для пинг-понга сообщений Я использую этот код http://stackoverflow.com/questions/9708604/nodejs-socket-io-connections-dropping-reconnecting

для уменьшения продолжительности долгого опроса я использовал

http://stackoverflow.com/questions/13458943/node-js-tcp-socket-server-on-the-cloud-heroku-appfog 

и socket.settimeout по событию подключения

http://www.fingersdancing.net/2012/12/nodejs-connection-times-out-after-2.html 

Любая помощь на этом будет очень признателен :)

ответ

3

hm ммм ... не смог найти причину, хотя я считаю, что это злая работа веб-монитора gfi, которую компания использует, но нашел решение ...

Решение заключалось в том, чтобы соединиться как соны, отключить событие и снова зарегистрировать информацию о событии connect (что необходимо, если только ур содержит отдельный список информации для сокетов ... скажем, ur, поддерживающий список пользователей онлайн)

socket.on("disconnect", function() { 
     //https://github.com/LearnBoost/socket.io-client/issues/251 

        socket.socket.reconnect(); 

       }); 


socket.on("connect", function() { 
       //do the registration code within this event 
       }); 
Смежные вопросы