Как подключить сервер потоковой передачи HTTP APE (Ajax Push Engine) к ресурсоемкому серверу - PullRequest
1 голос
/ 04 января 2012

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

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

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

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

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

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

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

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

Мои вопросы:

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

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

Спасибо.

Петр

1 Ответ

2 голосов
/ 08 января 2012

APE предназначен для обмена данными JSON, а не потоковыми данными.Таким образом, вы должны найти решение, при котором ваш стандартный веб-сервер (на котором запущена ваша библиотека) получает и анализирует данные.То, что вы можете сделать с APE, это так называемый «inline 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/ - это должно дать вам несколько советов.

tl; dr

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