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