PHP чат в реальном времени с ajax-опросом - PullRequest
3 голосов
/ 04 июня 2010

Мне нужно создать чат, похожий на чат в Facebook.

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

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

Ответы [ 2 ]

2 голосов
/ 04 июня 2010

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

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

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

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

1) есть какое-то обновление для включения в ответ

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

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

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

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

С

0 голосов
/ 07 июня 2010

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

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

...