10

我正在编写一个Red5应用程序,它通过RTMP向 Flash 客户端提供一对一的视频聊天。

不幸的是,我能找到的大多数教程充其量只是粗略的,而且在涉及 API 概念和预期用途时,Red5 本身的文档往往含糊不清。

简而言之,我有点卡住并寻找有关 Red5ApplicationAdapter实施的提示。粗略的细节如下:

  • 首先,联系有两种形式:访客和顾问。访问者应该能够指出它希望与哪位顾问交流。只要顾问不忙于为另一个人提供服务,顾问就会与请求访问者建立联系。

  • 显然,每个 RTMP 连接都有双向流量:发送和接收视频。从服务器的角度来看,连接会带来一堆视频流,这些视频流会根据请求分配其接收端点。

  • 由于可以同时进行多个视频对话,因此该应用程序的主要任务是处理访客流到顾问的映射,并通过AMF提供指示每个顾问状态(忙碌/可用)的列表。

所以,总而言之,我很清楚我的目标是什么,但是如何用 Red5 实现它仍然是一个谜。

希望有人可以在以下任何或所有方面启发我:

  1. 建立连接类型(访客/顾问)的最简单方法是什么?

  2. 应该使用哪些 API 类来实现一个持久的、全局可访问的活动连接列表,以报告每个顾问的状态?

  3. 当目标是将特定访客连接到所选顾问时,如何动态切换接收端点?

4

2 回答 2

3

扫罗

1.建立连接类型(访客/顾问)的最简单方法是什么?

假设两个(访问者/顾问)都使用 flex 客户端,他们通过它开始发布他们的实时视频流,这里您需要确保每个发布的视频流名称都是唯一的(演示应用程序中已经提到了 HOWTO)

2.应该使用哪些 API 类来实现一个持久的、全局可访问的活动连接列表,以报告每个顾问的状态?

并且为了提供活动连接列表,您只需要存储(最好在您的数据库中)每个用户的 ID 和流名称(也可作为教程演示应用程序)来连接。

我相信所有代码都可用于 red5 演示 请尝试使用 oflaDemo 、 simpleSubscriber 、 fitcDemo 演示应用程序。

我希望我更接近您的解决方案。

于 2011-01-30T13:59:40.787 回答
0

由于 Oflademo 或 red5 能够进行 1v1 聊天,因此复制此代码以进行大约 50 次聊天。您可以维护一个包含以下列的表格:

  • 聊天室号码(1 到 50)
  • 用户1
  • 用户2
  • 状态(0 或 1 - 未占用或已占用)

如果假设访客 V22 想要咨询顾问 C33,那么程序可以检测到第一个空房间从 1 到 50,如果第 7 个房间空,则将 V22 和 C33 重定向到房间 7 并将状态更改为 1(已占用)。视频通话结束后,status可以重置为0,roomno:7的table,roomno:7的user1,roomno:7的user2可以设置为NULL。这就像在计算机中维护餐厅的桌子一样。

您基本上可以使用数据库和 php 查询使用 1to1 开发多个聊天,无需编辑任何 swf 代码或维护复杂的服务器等。

于 2016-08-17T12:11:02.293 回答