FMS客户端 ActionScript NetConnection类

标签: actionscriptflashserver服务器constructorapplication
7608人阅读 评论(0) 收藏 举报
分类:

Constructor for the NetConnection class

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

可用的:

Flash6

Flash Communication Server MX1.0

用法:

new NectConnection();

参数:

返回:

一个NectConnection 对象

描述:

构造器;创建一个对象能够被用于Flash Player 连接到Flash Media Server或一个application server.创建一个NetConnection对象以后,用NectConnection.connect()方法建立一个连接.

更多关于Flashapplication server的信息,参看http://www.macromedia.com/go/flashmediaserver_desdev_en.

例子:

接下来的doConnect()函数,使用NetConnection构造器创建一个新的连接还有连接到server

fuction doConnect(){

       //Make a new connection object.

       var my_nc:NectConnection = new NectConnection():

 

       /*Get the name of the server from user input

       And assign it to a variable named myURL. */

       var myURL_str:String = serverName;

 

       // Connect to the service.

       my_nc.connect(“rtmp://”+myURL_str + “/someApp/someInstance”);

 

 

NetConnection.call();

可用的:

Flash Player 6.

Flash Communication Server MX1.0

用法:

Call(remoteMethod,resultObject | null [,p1,…,pN])

参数:

remoteMethod 一个参数来自[/objectPath/]方法;如果你调用一个方法在NectConnection对象,你可以忽略objectPath.例如,参数/someObj/doSomething意思是server必须调用someObj.doSomthing方法在这个应用里并通过NetConnection.connect()这个里面获得一个targerURI参数,经过指定p1,…,PN参数.

由于安全的原因,确定remoteMethod名字被保留在应用层;NectConnection.call method()方法中不能调用这些方法的名字。这些方法的名字有/onConnect,/onDisconnect,/onStatus,/onAppStop,/onAppStart.

resultObject 一个对象的参数是你期望要得到发送的结果.这个结果对象能够适合任何用户定义的对象.因为它被被使用,当一个结果形成前,一个名字为onResult的处理器将会被调用.如果你不需要结果对象,你可通过参数null,p1,…pN可选的参数传给指定的方法。

返回:

返回为空

描述:

方法;在服务器调用一个命令或者一个方法.你必须创建一个server-side函数定义这个方法.这个方法当然可以使用当你的应用连接到应用的服务器上. 更多关于Flashapplication server的信息,参看http://www.macromedia.com/go/flashmediaserver_desdev_en.

例子:

接下来的函数检查一个信息,发送它,然后清除本地的消息字符串.

function mySend(){

       if(length(msg)>0){

              my_nc.call(“message”,null,msg);

}

msg=””;

}

 

NectConnection.close()

可用的:

Flash Play6

Flash Communication Server MX 1.0.

用法:

public close() : Void

参数:

没有

返回

返回值为空

描述:

方法;关闭一个连接到服务器或调用了NetConnection.onStatus代码属性NetConnection.Connect.Close.更多信息,参看NectConnection.onStatus.

这个方法关闭连接所有的NetStream对象连接;包括任何队列数据都将不发送并且会被丢弃.(如果要停止服务器的数据流,但不关闭连接就使用NetStream.close().)你必须重新创建一个NetStream对象(参看”Constructor for the NetStream class”on page 79).

这个方法当然也关闭所有运行这个在连接上共享的远程对象,可是,如果你不想重新创建共享对象到连接,你可调用SharedObject.connect()方法来代替.以此来重建连接到共享对象.当然,你重建连接到共享对象,任何共享对象队列数据当你发出NectConnection.close()命令时将被发送。

例子:

下面的disconnect()函数停止发出服务流,当你调用NectConnection.close()去删除服务源的连接.当没有服务流可以播放时,这个目的流自动结束和被删除。

function disconnect(){

       //stops publishing the stream

       srcStream_ns.close();

       //deletes the source stream connection

       my_nc.close();

}

参看:

NectConnection.connect(),NectConnection.onStatus,NetStream.close(),

SharedObject.connect()

 

NetConnection.connect()

targetURI 统一的资源标识关于应用在Flash Media Server当连接建立时. 关于targetURI,使用接下的大部分(子项被包括在选项中):

protocol:[//host][:port]/appname/[instanceName]

关于protocol,指定rtmp,或者rtmpt,或者rtmps,如果rtmp被指定,Flash Player将会创建一个持久的端口连接到Flash Media Server.如果rtmpt被指定,Flash Player将会创建一个HTTP通道连接到服务器.如果rtmps被指定,Flash Player将会创建安全的连接到服务器.关于更多RTMP,RTMPT,RTMPS参看下面描述的部分.

你可以忽略host参数如果SWF文件被提供给服务,相同的主机Flash Media Serve被安装时.

如果instanceName参数被忽略,Flash Player连接到应用的默认实例(_definst_).

在默认的情况下,RTMP连接使用端口1935,还有RTMPT连接端口是80.

例如:URIs的正确格式

rtmp://www.myCompany.com/myMainDirectory/groupChatApp/HelpDesk

rtmp:/sharedWhiteboardApp/June2002

rtmp::1234/chatApp/room_name

p1…pN可选参数关于任何类型已经通过应用指定targetURI.如果应用不会处理一个接收到命令参数.NectConnection.onStatus被调用,当代码的属性被设置为:NectConnection.Connect.Rejected.

返回

一个Boolean值,如果为true就表示可接连的URI.如果为false(表示连接成功的结束.当使用NectConnection.onStatus.)

描述

方法;连接到应用在Flash Media Server.这个方法能够用到服务器通信.关于更多的信息:参看参看http://www.macromedia.com/go/flashmediaserver_desdev_en.

 

通常情况下,使用RTMP协议,将会打开一个持久稳固的Flash PlayerFlash Media Server的连接。可是,当用户在防火墙打开连接时,使用HTTP端口代理的RTMP端口将被会阻止,使用RTMP协议,当传输RTMP数据将会覆盖HTTP连接.RTMPT协议明确的需要一个HTTP连接和使用更快的连接当客户不能连通过RTMP接连时.

RTMPS连接使用443默认端口

如果Flash Player失去连接到服务器通过RTMP连接在默认的端口.它将会使用预定的的端口和协议自动尝试建立连接.例如:当如果一个应用尝试到失败通过连接Flash Player将会自动尝试接下依次连接,直到成功.

my_nc.connect(“rtmp:/myserver/myapp”),

my_nc.connect(“rtmp://myserver:443/myapp;

my_nc.connect(“rtmp://myserver:80/myapp”);

这个连接的次序能够被连接成功,但其实方式就不可以.但是,在这个连接次序被使用多次连接尝试直到超时为止。

注意:这个自动的重试次序,将出现在的如果最初的指定RTMP协议和使用默认的端口时,例如,my_nc.connect(“rtmp:/myserver/myapp”).

如果你想要使用这个连接到发布或者播放实时音频和视频节目,或者发布或者播放先前的记录带音频和视频的流文件.你必须连接到Flash Media Server 还有要创建一个NetStream对象,在里面要包括NetConnection对象,关于更多的信息,参看NetStream class 条目.

如果你想使用这个连接到系列化的数据在多客户端或者在客户端与服务器之间,你必须连接到Flash Media Server然后创建一个远程共享对象里面包括NetConnection对象.关于更多的信息,参看SharedObject class 条目.

当你调用这个方法,NetConnection.onStatus事件处理器会调用一个消息对象然后指定是否连接成功还是失败.关于更多的作息,参看NetConnection.onStatus.如果这个连接成功,NectConnection.isConnected被设置为true;

关系到网络和线程时间问题,它最后的代替是NetConnection.onStatus处理脚本在这个NectConnection.connect()方法之前.其他方面,这个连接可能在脚本执行之后完成onStatus处理器的初始化.当然,所在这NetConnection.connect()方法里面的安全机制的检查将会在onStatus处理器尚未开始建立时被丢失.

如果直定一个连接已经打开,当你调用这个方法论,如果一个NetConnection.close()方法被调用,然后连接重新打开.

在连接处理,任何服务器的回答并发NetConnection.call(),NectStream.send(),或者SharedObject.send()方法都要等到服务器的签别到连接和NectConnection.onStatus方法被调用.调用或者发送方法是顺序的.任何未决定的更新或者远程的共享对象同样要等到顺序处理连接成功.指定哪几个传输到服务器.

 

 

 

呵呵~这是我的舍友icelong去年翻译的,想来也真难为他,那时我因为工作的原因要用到fms,所以就麻烦他帮翻译了一点(由于是临时用,我本人也没太认真去对较,纯粹是方便写程序,参考而已,如果有错误,请大家评论)

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:289488次
    • 积分:4027
    • 等级:
    • 排名:第8110名
    • 原创:90篇
    • 转载:7篇
    • 译文:6篇
    • 评论:192条
    博客专栏
    最新评论
    Flash