из этого мирового программирования Кометы и веб-чата

Текущая установка проекта

Я работал над веб-чатом, подобным чату Facebook. В текущем состоянии я прислушиваюсь к входящим чатам, и проверка на новые сообщения в существующем чате путем выполнения...

setTimeout(function() { listenForIncomingChat() }, 500);
setTimeout(function() { checkForIncomingMessages( ...params... ) }, 500);

... так выполнение setTimeout() удостоверяется, что эти функции всегда работают. В зависимости от того, сколько окон чата я имею открытый, консоль Firebug может сойти с ума с POSTs к серверу :)

Очевидно, это действительно неэффективно, но это - единственный способ, которым я мог получить вещи работать. Теперь я ищу способы сделать его лучше, сделать это правильно!

Некоторое исследование

Теперь, я услышал о Программировании Кометы и что это - способ открыть долговечное HTTP-соединение с сервером, но я не знаком с технологией или идеями позади Кометы. WebSockets для HTML5, вероятно, еще лучше, но так как это не в полном разгаре, и при этом он не поддерживается всеми браузерами, я буду придерживаться с какой работы.

Согласно Википедии, существует несколько способов разработать со стилем Кометы: Передавая потоком (скрытый iFrame, XMLHttpRequest) или Ajax с долгим опросом (XMLHttpRequest, Тег script). Однако я ничего не знаю об этом. Я также читал о Механизме нажатия Ajax (APE), и это выглядит прохладным, но я не хочу использовать третье лицо в настоящее время.

Я недавно наткнулся на WebChat 2.0, таким образом, я собираюсь быть просмотром исходного кода, чтобы попытаться понять, как все это работает.

По вопросу (вопросам)

Таким образом, где я могу найти пример кода / учебными руководствами о том, как начать с этим видом проекта? Как я реализовал бы метод Кометы? Как я настраиваю долговечное HTTP-соединение с сервером?

12
задан 28 revs 3 September 2012 в 06:41
поделиться

1 ответ

Вот пример чата с использованием node.js, исходный код здесь .

Я считаю, что клиент использует опрос, но этот пример интересен тем, что серверная часть тоже находится на JS, а node.js эффективен для такого рода вещей.

9
ответ дан 2 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: