Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2014, 22:35
Интересующийся
Отправить личное сообщение для Arhangel64 Посмотреть профиль Найти все сообщения от Arhangel64
 
Регистрация: 06.10.2013
Сообщений: 20

Node.js, socket.io создание задержки
Здравствуйте!
Есть сервер на node.js на express и на нем socket.oi надстройка.
Возникла следующая мысль. Создать на каждой странице сайта скрипт, который будет подсоединяться к socket.io. Таким образом я думаю обеспечить отображение суммарного количества пользователей, просматривающих страницы сайта, организовать глобальный единый транспорт и еще много чего).
Проблема в том, что когда кто-то переходит по страницам - срабатывает событие disconnect. Если пользователей много цифра количества посетителей будет дребезжать, сервер будет спамить событиями.
Идея. Создать при событии disconnect на сокете таймаут с малой задержкой, и записать timeoutID в сессию пользователя. Если это был переход и подключение к сокету произошло до истечения таймаута, то при событии connection прочтется timeoutID из сессии и таймаут будет отменен. В противном случае, пользователь скорее всего закрыл окно, сработает событие ухода, установленное в таймауте.
На деле, конечно, нельзя сохранить этот объект в сессию. Да и я практически уверен, что изобретаю костыльный велосипед.
Подскажите пожалуйста, как подобную идею можно реализовать? Как исключить переподключение к сокету при переходах?
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2014, 00:44
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Arhangel64
Таким образом я думаю обеспечить отображение суммарного количества пользователей, просматривающих страницы....Проблема в том, что когда кто-то переходит по страницам .......
Для этого сессий более чем. Дисконект - ajax+ history apy решат проблему
Ответить с цитированием
  #3 (permalink)  
Старый 30.04.2014, 23:19
Интересующийся
Отправить личное сообщение для Arhangel64 Посмотреть профиль Найти все сообщения от Arhangel64
 
Регистрация: 06.10.2013
Сообщений: 20

Разобрался вроде с этим способом, что-то несложное вполне ясно как делать.
Возник следующий вопрос. Сервер возвращает документ, в котором есть свои ссылки и скрипты, вешающие свои обработчики и запускающие некоторые сценарии. Как сделать так, что бы скриптовая часть вернувшегося участка документа выполнилась после ответа сервера?
Ответить с цитированием
  #4 (permalink)  
Старый 01.05.2014, 17:09
Интересующийся
Отправить личное сообщение для Arhangel64 Посмотреть профиль Найти все сообщения от Arhangel64
 
Регистрация: 06.10.2013
Сообщений: 20

А, все, нашел.
Меня спас метод задания функций var a = new Function('params', 'code').
Для того, что бы мой скрипт в свежеподгруженной ajaxом куске документа выполнился, я в code сослался на .script.innerHTML а потом просто вызвал функцию а
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Онлайн игра на Node.js + SockJS или socket.io freerunner AJAX и COMET 4 19.04.2014 18:46
Node.js + socket.io + fleshpolicy + IE9-10 IgorN AJAX и COMET 2 18.04.2013 13:07
Node.js и задержки с доставкой сообщений IgorN AJAX и COMET 5 12.04.2013 17:09
Востребованность разработчиков на Node.js danik.js AJAX и COMET 7 08.12.2012 22:49
Разработчик Node.js в США (Сиэтл) Akvelon Работа 0 29.08.2012 10:47