Как подключить сервер потоковой передачи HTTP APE (Ajax Push Engine) к ресурсоемкому серверу

Я изучал APE (Ajax Push Engine - http://www.ape-project.org/) в течение нескольких недель, и я прочитал всю документацию, которую они имеют на веб-сайте.

Проект APE претендует на "потоковую передачу данных в реальном времени", но я просто не могу найти хороший пример для этого. Я немного разочарован их документацией.

Возможную вики-страницу я читаю на их сайте: http://www.ape-project.org/wiki/index.php/Tutorial:How_to_write_an_application_with_APE

Но опять же, он просто имеет некоторые понятия, а не подробную информацию.

После некоторого поиска в Google я начал чувствовать разочарование. Никаких ценных руководств или примеров для моей цели.

Так что я публикую это здесь.

По сути, я хотел сделать так, чтобы сервер потоковой передачи HTTP (с очень дорогими вычислениями) мог все еще достаточно хорошо масштабироваться (100 или 200 клиентов). Требования:

  1. Использовать протокол HTTP (без RTMP);
  2. Клиент передает аудиоданные на сервер;
  3. Сервер принимает аудиоданные, обрабатывает их и отправляет результат обратно в ЦИВ, получая аудиоданные от клиента;
  4. Обработка аудиоданных выполняется в библиотеке C/C++;
  5. Сервер также может передавать потоковые аудиоданные на несколько секунд клиенту, и клиент может воспроизводить звук, пока он принимает аудиоданные с сервера;
  6. Между клиентом и сервером должно быть установлено долговременное соединение / сеанс, и сервер должен обнаруживать разъединение (TimeOut или UserDisconnect);

Мои вопросы:

  1. Какие примеры APE и учебные пособия я должен прочитать, чтобы облегчить мои потребности?
  2. Где я могу найти хороший пример использования APE HTTP Streaming?
  3. Как я могу создать очень простой пример потоковой передачи HTTP (серверные потоки)?
  4. Как я могу подключить свою дорогостоящую C/C++ lib библиотеку на стороне сервера?
  5. Как я могу поддерживать состояние каждого клиентского соединения / сеанса на стороне сервера?

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

Благодарю.

Питер

1 ответ

APE предназначен для обмена данными JSON, а не потоковыми данными. Таким образом, вы должны найти решение, где ваш стандартный веб-сервер (на котором работает ваша библиотека) получает и анализирует данные. То, что вы можете сделать с APE, это так называемый "встроенный push". Это означает отправку данных с внутреннего сервера на сервер APE, чтобы он мог пересылать данные клиентам.

В вашем случае я бы регулярно делал так, чтобы библиотека синтаксического анализа отправляла обновление статуса на сервер APE, чтобы оно могло быть передано клиенту.

По поводу ваших вопросов:

  1. http://www.ape-project.org/wiki/index.php/Libape-controller
  2. Нигде - это не для этого
  3. С другим языком программирования на стороне сервера на ваш выбор
  4. Очевидно, что зависит от вашего Apache / Nginx и языка сервера
  5. Это то, что APE может и будет делать - если вы выполняете необходимое программирование на стороне сервера. Вы уже прокомментировали мой блог, поэтому, возможно, вы видели http://www.xosofox.de/2010/10/ape-user-handling/ - это должно дать вам несколько советов.

ТЛ; др

  • Использовать другой сервер в качестве бэкэнда для lib
  • Пусть сервер lib отправляет короткие обновления статуса через встроенную передачу в APE, чтобы APE отправляла его клиенту
Другие вопросы по тегам