2012-04-06 3 views
1

У меня есть веб-сайт, который реализован в php/mysql и размещен на hostmonster (), хостинг).Как масштабировать приложение чата?

Я планирую включить функцию чата на своем веб-сайте, что позволяет пользователям общаться друг с другом. Есть ок. 1000 пользователей на моем сайте. В настоящее время я реализовал стратегию ajax, которая отправляет запросы на сервер на периодической основе (скажем, каждые 4 секунды), чтобы получить ответ json о онлайн-пользователях и сообщениях.

Это пример кода, который посылает запросы:

var timer, delay = 4000; 

timer = setInterval(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'update.php?user_id=2', 
     success: function(html){ 
     $('.chat_messages').append(html); 
     } 
    }); 
}, delay); 

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

Так что я планирую альтернативное решение, которое не имеет накладных расходов на сервере. Я слышал о нескольких серверах, таких как APE, Nginx, Node.js, StreamHub, которые используют технологию COMET/reverse ajax для обслуживания запросов и эффективны для моей цели.

Но проблема в том, что у меня нет разрешения на установку стороннего сервера на моем компьютере-коннекторе hostmonster. Есть ли другой способ, например, веб-сокеты HTML5?

EDIT: Кстати, я также заинтересован в том, чтобы перестроить мое приложение на Java, если есть жизнеспособное решение.

+1

Можете ли вы запустить PHP-демонов на вашем хосте? –

+0

Да, я надеюсь, что PHP-демоны могут быть созданы и запущены на моем хосте. –

+1

Хорошо, в каком направлении? Вы либо можете, либо не можете: причина, о которой я прошу, заключается в том, что это, вероятно, решение, доступное вам (создание сервера websocket PHP) –

ответ

2

Как вы выяснили, что нового, 4 секунды для каждого пользователя не будут масштабироваться. И это даже не будет работать для приложения чата, поскольку задержки между сообщениями будут слишком длинными, что сделает ваш чат непригодным.

Если бы я был вами, я бы сначала рассмотрел вставные чат-решения, которые не требуют каких-либо (или очень маленьких) программ с вашей стороны. Обычно вы просто вставляете код JavaScript на свою страницу, а третья сторона, предоставляющая чат, делает все остальное (обслуживая файлы, запуская чат-сервер и т. Д.). Я не использовал ни одно из доступных решений, поэтому я не могу рекомендовать его, но быстрый поиск в Google дал это: https://www.meebo.com/websites/ Это должно дать вам общее представление о том, что я говорю.

Если вышеуказанное не будет укомплектовано вами, у вас будет довольно большой проект перед вами. Вам нужно будет написать сервер websocket (а затем приложение для чата поверх этого). Если бы я хотел объяснить, как это сделать вам, я мог бы написать книгу об этом, поэтому я просто скажу это: google - ваш друг. Вы не первый, кому это нужно. Таким образом, поиск stackoverflow для подсказок и есть также серверы PHP с открытым исходным кодом PHP (this being one).

Удачи.

+0

Я бы рассмотрел второй вариант, который вы указали.Но что это касается демонов php? –

+1

Сервер websocket работает как PHP-деамон. –

+0

Небольшое обновление: мой хост позволяет создавать процессы демонов/демона. Но время ожидания по умолчанию - 10 минут. Кажется, это создает препятствия для меня, так как запросы должны обрабатываться больше времени. –

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