我是否需要与客户端做任何不同的事情,还是需要修改的服务器设置?

时间:2012-08-09 09:51:15

标签: flex api http flash-media-server

我有一个基于Flex的应用程序,它使用Flash Media Server(FMS)服务器(版本4.0)在两个用户(即一对一电话会议服务)之间进行实时视频流传输。根据业务规则的定义,此流式传输是一对一的,因此没有第三方可以加入电话会议。任何一个人都可以通过基于浏览器的Flex客户端启动视频流,并在第二个用户加入后建立通信。用于连接两个用户的流的验证在FMS服务器上实现(作为main.asc中定义的服务器端脚本)。我的电话会议解决方案面临三个关键问题。

1.经常无法在两个用户之间建立完整的通信。一个用户通常不能看到或听到其他用户。有一个客户端“刷新”按钮,单击时,尝试通过服务器端脚本建立连接。这有时会奏效。在实现我们当前的服务器端脚本之前,我尝试使用此处的方法建立流:http://forums.adobe.com/thread/905613

我认为下面的方法可能有效,因为它会为我提供一组流的订阅者。

getLiveStreamStats(appInst:String,stream:String):Object

但问题是服务器返回以下内容:

<level>error</level>
<code>Admin.API.MethodNotAllowed</code>
<description>getlivestreams - Method not allowed!</description>
<timestamp>8/7/2012 10:05:38 AM</timestamp>

问题 - 我是否需要与客户端做任何不同的事情,还是需要修改的服务器设置?

1 个答案:

答案 0 :(得分:2)

您没有指定是否使用HTTP或RMTP进行远程调用。如果您使用的是RMTP,则无需执行任何操作。如果您使用的是HTTP,则需要修改以下文件:

  • {Flash / Adob​​e Media Server Root} \ conf \ AMS.ini(如果您使用的是旧版本,则为FMS.ini)
  • {Flash / Adob​​e Media Server Root} \ conf \ Users.xml

首先,您需要将USERS.HTTPCOMMAND_ALLOW选项设置为true。在我的AMS.ini文件版本中,它位于配置页面的最底部。

在Users.xml文件中,您需要找到该块。在我的版本中,它也位于页面底部。 Adobe Media Server 5的默认安装(在我的情况下无论如何)只允许“ping”方法,并且不允许所有其他方法。您将需要更新该块以反映您希望通过HTTP(白名单)访问的方法的逗号分隔列表,或者允许所有并拒绝所有(我不建议这样做)。

不要依赖通过基于Web的管理控制台软重启Adobe / Flash Media Server。这不适合我。我需要从Windows服务面板中重新启动AMS服务,以使配置文件中所做的更改生效。

我希望这有帮助!

瑞克