PHP, javascript, ajax - общение между двумя пользователями - PullRequest
3 голосов
/ 12 апреля 2011

Доброго всем дня.

Мне нужно сделать это:

Когда пользователь X нажимает кнопку, пользователь Y видит фотографию. До этого пользователь Y ничего не видит.

Я сделал это так: я создал базу данных на сервере MySQL и создал таблицу с фотографиями и флагами. Когда пользователь X нажимает кнопку, я отправляю запрос ajax и меняю флаг на соответствующую фотографию. Пользователь Y также отправляет ajax-запрос каждую 1 секунду, чтобы узнать, изменилось ли что-либо.

Звучит хорошо, выглядит хорошо, работает ... это так, но так хорошо. Когда 100000 пользователей отправляют 1 запрос AJAX каждую 1 секунду, происходит сбой сервера. Сначала MySQL сервер, а затем Apache.

Итак ... у меня вопрос, есть ли способ сделать это без такого количества запросов AJAX? Что-то вроде отправки страницы с определенной «вещью», которая говорит браузеру оставить тот же сокет и отправить позже изображение? Что-то вроде потока, но вместо изображений должны быть html-страницы / изображения / что угодно.

Я знаю, что Java-апплет был бы решением, но мне нужно решение php (для серверной части) + js (для клиентской стороны).

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

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Поскольку HTTP не имеет состояния, вам необходимо создать постоянное или длительное сокетное соединение между клиентами и сервером.

Это приложение для чата, написанное на PHP, AJAX и Ruby backend.

Главная страница приложения веб-чата , точнее, часть о сокет-сервере

2 голосов
/ 12 апреля 2011

А как насчет WebSockets ?

edit. HTTP keep-alive может помочь.

...