2009-08-24 5 views
35

Может ли кто-нибудь дать мне хороший и простой пример техники комет с использованием PHP?Простой пример кометы с использованием php и jquery

Мне просто нужен пример, который использует постоянное HTTP-соединение или что-то подобное. Я не хочу использовать технику опроса, потому что у меня есть что-то вроде этого, и не только трудно работать и управлять своим большим количеством ресурсов. Также я использую IIS7, а не Apache.

Хороший пример был бы очень полезен, поэтому я мог бы перейти от этой уродливой техники опроса.

+0

getclicky.com, кажется, используя метод опроса довольно успешно –

ответ

2

Никогда не используя эту технику и изучая Wikipedia article по теме "Long Polling", похоже, единственное жизнеспособное решение. Это звучит довольно просто для реализации путем бесконечного цикла и спящего сценария на сервере. Есть actual code в HTTP Streaming page, связанных с статьей Википедии.

Вы пробовали все это и наткнулись на конкретные проблемы?

1

Вы можете взглянуть на это article, это действительно хорошее начало для понимания концепций программирования комет.

Вы найдете на нем два примера. Первый использует метод iframe, тогда как второй использует постоянное соединение.

14

Вы должны использовать опрос, или использовать веб-сервер, который специально задуманный для длинных запросов и COMET, с хорошей JS бэкэндом:

function listen() { 
    $.get("/mylongrequestfile", {}, function(data) { 
     $("#mydiv").html(data); 
     listen(); // then launch again 
    })); 
}; 

Помните, что комета «ждать данных, если есть возврат данных и выйти ", поэтому сервер JS придется разбирать данные и повторно запускать процесс запроса сервера.

В этом примере, если существует проблема на стороне сервера или просто отключение со стороны пользователя, весь процесс будет сломан (функция вызывается только если запрос успешен)

+2

+1 Отличный код, вы бы рекомендовали сделать этот сон между запросами? –

+1

сам сервер должен сделать эффект 'sleep', поэтому сервер должен дождаться ответа до тех пор, пока не произойдет одно из этих событий (обнаружены 1 новые данные, 2 раза истечет время ожидания запроса) – MhdSyrwan

0

Для IIS, есть WebSync. Однако, поскольку вы используете PHP, вам может быть лучше с WebSync On-Demand. Любой из них даст вам доступ к серверу, который вы ищете, и прост в использовании. Отъезд this questio n, а это, в основном, то, что вам нужно.

a simple example of WebSync On-Demand in actionнет сценарий язык. Просто откройте в двух окнах и посмотрите публикацию/подписку в действии.

Публиковать с сервера вы можете, используя PHP api.

3

У меня есть очень простой пример, который поможет вам начать с кометы. Он охватывает сбор Nginx с модулем NHPM и включает код для простых ролей издателя/подписчика в jQuery, PHP и Bash.

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

рабочий пример (простой чат) можно найти здесь:
http://cheetah.jamieisaacs.com/

6

Проверьте это: How to implement COMET with PHP.
Это не использование JQuery. Он создается с использованием PHP и Prototype. Это очень легко понять. Я думаю, вы можете легко создать сценарий JQuery после просмотра этого.

 Смежные вопросы

  • Нет связанных вопросов^_^