2010-06-04 7 views
3

Мне нужно создать чат, похожий на facebook chat.PHP чат реального времени с ajax-опросом

Я думаю использовать опрос ajax (отправить запрос каждые 2-3 секунды).

Это хороший подход? Или мне нужно использовать другие серверные языки, такие как erlang и server-comet?

+1

Это может быть интересно: заметки инженера Facebook о реализации их чатов http://www.facebook.com/note.php?note_id=14218138919 –

ответ

2

Или мне нужно использовать другие на стороне сервера языков

Нет - это не совсем актуальны - самая большая проблема заключается в том, что HTTP не поддерживает уведомления толчка - поэтому язык используется на веб-сервере почти не имеет значения.

сервер-комета?

Comet - это технология программирования, а не язык, специально разработанный для устранения отсутствия push в HTTP. Обычно браузер отправляет запрос, веб-сервер создает ответ, а затем отправляет его клиенту. С Comet, веб-сервер ожидает, пока либо:

1) не существует некоторое обновление, чтобы включить в ответ

2) таймер истекает

Перед отправкой ответа. Следствием этого является то, что он приводит к большому числу, если неактивные подключения к веб-серверу - что может вызвать проблемы с производительностью.

Альтернативный подход заключается в использовании HTTP для развертывания клиентской программы для запуска в браузере, который подключается к чат-серверу с использованием другого протокола. Его можно сделать с помощью ActiveX, Java или flash - все из которых имеют серьезные недостатки - не в последнюю очередь переносимость.

Существует несколько предварительно написанных решений с использованием PHP и javascript - подсказка - если в документах не упоминается Naggle, они, вероятно, не думали о масштабируемости/производительности.

C.

0

Это зависит от того, сколько у вас пользователей, я думаю. Он будет работать, когда у вас мало пользователей (так они делали это в прошлом). Но, на мой взгляд, чат не в режиме реального времени, потому что вы можете задерживать слишком х секунд (интервал опроса).

С большим количеством одновременных пользователей модель опроса не будет масштабироваться. Затем вы должны действительно изучить неблокирующий длинный опрос (по крайней мере). Я думаю, что если это вообще возможно, вы должны изучить неблокирующий метод длительного опроса, потому что это то, как большие сайты используют приложение реального времени. Но ваш сервер должен позволить вам установить другие языки программирования, потому что PHP не подходит для этой техники.