Текущая настройка проекта
Я работал над сетевым чатом, похожим на чат в Facebook. В текущем состоянии я прослушиваю входящие чаты и проверяю новые сообщения в существующем чате, выполняя ...
setTimeout(function() { listenForIncomingChat() }, 500);
setTimeout(function() { checkForIncomingMessages( ...params... ) }, 500);
... таким образом, setTimeout()
гарантирует, что эти функции всегда работают. В зависимости от того, сколько окон чата у меня открыто, консоль Firebug может сойти с ума с POST
s на сервере:)
Очевидно, что это действительно неэффективно, но это единственный способ, которым я мог заставить вещи работать. Сейчас я ищу способы сделать это лучше, сделать это правильно!
Некоторые исследования
Теперь я слышал о Программирование Comet и о том, что это способ открыть долгоживущее HTTP-соединение с сервером, но я не знаком с технологией или идеями Comet. WebSockets для HTML5, вероятно, даже лучше, но, поскольку это не идет полным ходом и не поддерживается всеми браузерами, я остановлюсь на том, что работает.
Согласно Википедии, существует несколько способов разработки с использованием стиля Comet: потоковая передача (скрытый iFrame, XMLHttpRequest) или AJAX с длительным опросом (XMLHttpRequest, тег Script). Однако я ничего не знаю об этом. Я также читал о AJAX Push Engine (APE) , и он выглядит круто, но я пока не хочу использовать стороннюю версию.
Я недавно наткнулся на WebChat 2.0 , поэтому я собираюсь просмотреть исходный код, чтобы попытаться понять, как все это работает.
На вопрос (ы)
Так, где я могу найти примеры кода / учебные пособия о том, как начать работу с такого рода проектом? Как бы я внедрил технику кометы? Как настроить долговременное HTTP-соединение с сервером?