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