您的位置:首页 > 其它

FMS第一天:NetConnection.Connect系列问题如何解决

2013-11-07 23:17 281 查看
按照闪闪威廉@nju 的开发者向导进行第一个HelloWorld实验,结果就遇到了NetConnection.Connect系列的问题,上网搜了一下,用如下方法解决了几个问题:

1、NetConnection.Connect.Rejected&Failed

通过NetConnection连接FMS服务器的时候,连接状态总是返回“NetConnection.Connect.Rejected”这样的状态结果,然后接着还有会有一个“NetConnection.Connect.Failed”状态,是什么原因造成这样的错误的呢?

第一个错误是访问FMS服务器的权限问题,如果FMS没有开设足够的访问权限,通常在访问FMS的客户端都会接受到这样一个异常状态。第二个错误又是怎么产生的呢?这还是又访问权限引起,当客户端没有主够的权限访问FMS服务器,就将返回“NetConnection.Connect.Rejected”状态并自动断开与FMS服务器的连接,“NetConnection.Connect.Failed”状态本身是由于连接服务器失败产生,而这里是因为权限问题而引发的。

怎么来解决这个问题呢?如果你是一个技术专研者,如果又你赶兴趣的技术在你面前,你首先会做什么?查看官方提供的文档?实例代码?还是什么? OK,其实要解决这个问题很简单,在FMS服务器安装好后的目录下有一个"applications"目录,里面有两个FMS默认安装的FMS服务器(live和vod),随便打开一个默认安装然后打开里面的"readme.txt"文件会看到下面的字样:

  ================================================================

  Deploying an unsigned vod service

  ================================================================

  

  1. Create a new folder in the {FMS-Install-Dir}/applications folder.

  2. If you are replacing the default Adobe signed live service, back up

   the following files: 

   * main.far

   * Application.xml

   * allowedHTMLDomains.txt

   * allowedSWFDomains.txt 

  3. Copy files from {FMS-Install-Dir}/samples/applications/vod to the Directory you created in step 1.

  现在你知道怎么解决上面出现的问题了吗??将这main.far、Application.xml、allowedHTMLDomains.txt和allowedSWFDomains.txt这四个文件复制到你创建的FMS服务器目录下就解决了,运行实例程序,然后可以通过FMS的管理控制台查看到详细的连接信息。

  我通常是使用的FMS安装目录下的fms_adminConsole.swf 来查看连接信息,也可以使用FMSfms_adminConsole.htm查看。

2、如何设置FMS的权限

在服务器端的应用程序文件夹(默认位置在<FMS_Installation_Dir>/applications /live),在这个文件夹下面有一个main.far,main.far是个压缩文件(可以用winrar解压),解压后里面有两个文件 main.asc 和 Application.xml, 打开Application.xml,代码如下:

<Application>

<SharedObjManager>

<ClientAccess override="no">false</ClientAccess>

</SharedObjManager>

<StreamManager>

<StreamRecord override="no">false</StreamRecord>

</StreamManager>

</Application>

默认是SharedObject远程共享对象和StreamRecord录制都不允许的。

Application.xml改成如下:

<Application>

<SharedObjManager>

<ClientAccess override="yes">true</ClientAccess>

</SharedObjManager>

<StreamManager>

<StreamRecord override="yes">true</StreamRecord>

</StreamManager>

</Application>

保存之后再打包一下,替换main.far,OK!问题解决了。

3、另附各种NetConnection.Connect的几种错误

1、NetConnection.Call.Failed Error

NetConnection.call() 调用服务器端方法失败。返回的info对象包含一个具体的调用失败说明。for in一下可以看到。

2、NetConnection.Connect.AppShutdown Error

服务器端应用程序因为一些原因被关闭(过度占用server端资源),或者服务器已经被关闭。

3、NetConnection.Connect.Closed Status

连接中断。

4、NetConnection.Connect.Failed Error

连接失败。如FMS 没有启动。

5、NetConnection.Connect.InvalidApp Error

targetURI中rtmp://[ip或domain]/[appName]

其中appName不存在。

6、NetConnection.Connect.Rejected Error

连接被拒绝 原因:

targetURI指定的application不充许client连接,或者传递给应用程序的参数不对,也可能是server应用程序直接拒绝连接(可以在appName文件夹中写一个ASC文件做到)

这时,info对象有一个application属性,包含服务器方法application.rejectConnection()的返回值。

client在被拒绝后会马上再收到一个NetConnection.Connect.Closed的信息。

7、NetConnection.Connect.Success Status

连接成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐