1

我已经研究 APE(Ajax 推送引擎 - http://www.ape-project.org/)几个星期了,我已经阅读了他们在网站上的所有文档。

APE 项目声称“实时数据流”,但我就是找不到一个很好的例子。我对他们的文档感到有点沮丧。

我在他们的网站上阅读的可能的维基页面:http: //www.ape-project.org/wiki/index.php/Tutorial :How_to_write_an_application_with_APE

但同样,它只是有一些概念,而不是详细信息。

做了一些谷歌搜索后,我开始感到更加沮丧。 没有有价值的教程或示例用于我的目的

所以我把这个贴在这里。

基本上,我一直想做的是,HTTP 流服务器(计算成本很高)仍然可以很好地扩展(100 或 200 个客户端)。要求:

  1. 使用 HTTP 协议(​​无 RTMP);
  2. 客户端将音频数据流式传输到服务器;
  3. 服务端接收到音频数据,处理后将结果发送回客户端,同时从客户端接收音频数据;
  4. 音频数据的处理在C/C++ 库中完成;
  5. 服务器也可以将几秒的音频数据式传输到客户端,客户端可以在接收服务器的音频数据的同时播放音频;
  6. 客户端和服务器之间应建立长期连接/会话,并且服务器应检测到断开连接(TimeOut 或 UserDisconnect);

我的问题是:

  1. 我应该阅读哪些 APE 示例和教程来满足我的需求?
  2. 我在哪里可以找到使用 APE HTTP 流的好例子?
  3. 如何创建一个非常简单的HTTP 流示例(服务器流)
  4. 如何在服务器端连接我的计算昂贵的 C/C++ 库
  5. 如何在服务器端维护每个客户端连接/会话的状态

如果有人知道我的要求或问题,请告诉我。

谢谢。

彼得

4

1 回答 1

2

APE 用于交换 JSON 数据,而不是流数据。因此,您必须找到一个解决方案,让您的标准 Web 服务器(运行您的库)接收并解析数据。你可以用 APE 做的就是所谓的“内联推送”。这意味着,将数据从后端服务器发送到 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;博士

  • 使用另一台服务器作为库的后端
  • 让 lib 服务器通过内联推送向 APE 发送简短的状态更新,以便 APE 将其推送到客户端
于 2012-01-07T21:32:54.680 回答