2012-07-04 2 views
37

Со всем шумом вокруг WebSockets довольно сложно найти хорошее пошаговое руководство по использованию их с сервером Apache в Google.Использование WebSocket на сервере Apache

Мы разрабатываем плагин в PHP (symfony2), который время от времени будет запускать экземпляр чата. И мы находим WebSockets более интересными, стандартными и быстрыми, чем AJAX по этому вопросу. Дело в том, что мы не имеем много RESSOURCES системного администратора в нашей группе, и мы находим трудно собрать хорошую информацию по следующим вопросам:

  • Можно ли запустить экземпляр WebSocket на, выделенном сервере Apache традиционного, и если да, у вас есть полезные ссылки для нас?
  • Если нам нужно модифицировать сервер, какие инструменты вы бы порекомендовали, зная, что мы не слишком искусны в sysadmin, поэтому мы не можем позволить себе поддерживать высокий уровень обслуживания b ***.

Большое спасибо,

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

Еще раз спасибо!

+0

Вы можете попробовать это тоже [ApacheWS] (http://www.apache-ws.tk) –

ответ

14

Одним из путей является использование независимого установленного сервера веб-сокетов.

Для PHP вы можете попробовать: http://code.google.com/p/phpwebsocket/ или http://github.com/Devristo/phpws/

Есть некоторые другие проекты, которые вы можете попробовать, как хорошо.

В принципе, вам необходимо загрузить, распаковать и запустить процесс.

На интерфейсе у вас будет соединение javascript с сервером на конкретном порту.

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

Трудная часть - следить за сервером веб-сокетов и следить за тем, чтобы он работал плавно и непрерывно.

Попробуйте протестировать как можно больше браузеров/устройств, так как это определит, какой вариант реализации веб-сервера вы выберете. Есть старые и новые протоколы, за которыми вы должны следить.

+0

Большое спасибо. У вас есть какой-либо инструмент для мониторинга в виду случайно? Удачного времени! –

+0

У нас есть собственные инструменты контроля веса. Для начала простой скрипт cron, который проверяет, не запущен ли процесс и перезагружает его. Вы можете создавать или искать готовые приложения для мониторинга процессов. – zaf

+0

Хорошо, я уверен, что наша команда разработчиков сможет что-то сделать! Еще раз спасибо! –

17

Как @zaf заявляет, что вы с большей вероятностью найдете автономное решение PHP - не то, что работает в Apache. Это говорит о том, что есть apache WebSocket module.

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

Лично я думаю, что у вас есть два варианта:

  1. Использование альтернативного решения в режиме реального времени веб-технологии и обмена данными между веб-приложений и веб-в режиме реального времени с использованием инфраструктуры очередей или короткоживущие запросов (веб-сервисы).
  2. Отключить обработку постоянных подключений и масштабирование веб-инфраструктуры в реальном времени до веб-хостинга в режиме реального времени. Я работаю за Pusher, и мы попадаем в эту категорию.

Для самостоятельных и размещенных вариантов вы можете проверить мой realtime web tech guide.

+0

Очень интересный материал :) Большое вам спасибо! Я люблю вашего гида, хотя он не помогает значительно различать решения. Мы проверим документацию;) Еще раз спасибо! –

+0

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

+0

и это уже потрясающе :) спасибо за работу! –

7

Я представил еще один сервер веб-сервера: PHP Ratchet (Github).

Это лучший и полный список клиентов & Коды сервера и поддержка браузера.

Пожалуйста, проверьте это link.

+0

Спасибо, но почему это лучше? – Ben

+0

Безусловно, это FAST & EASY & React подмножество (http://reactphp.org). У него хорошие документы и поддержка. – ShahRokh

+2

Можем ли мы взглянуть на любые тесты? – Tebe

-2

Другой путь - использовать выделенный сервер websocket.

Попробуйте Сервер Achex Websocket по адресу www.achex.ca и ознакомьтесь с учебниками.

ИЛИ

Если вы действительно хотите Apache, проверить Apache Camel. (Но вы должны установить его и его немного более сложным, чем achex сервер) http://camel.apache.org/websocket.html

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