FMS客户端 ActionScript NetConnection类

翻译 2007年03月23日 11:47:00

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,所以就麻烦他帮翻译了一点(由于是临时用,我本人也没太认真去对较,纯粹是方便写程序,参考而已,如果有错误,请大家评论)

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

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

按照闪闪威廉@nju的开发者向导进行第一个HelloWorld实验,结果就遇到了NetConnection.Connect.Failed的问题,上网搜了一下,用如下方法解决了问题: 通常新手在学习FM...

librtmp协议分析---RTMP_ConnectStream函数

接下来我们分析RTMP_ConnectStream函数。 代码如下: //创建流/循环读取服务端发送过来的各种消息,比如window ack, set peer bandwidth, set ch...

rtmplib rtmp协议过程分析

转自:http://chenzhenianqing.cn/articles/1009.html 写的很好,收藏如下,向作者致敬! 没事碰到了librtmp库,这个库是ffmpeg的依赖库,用来接收...
  • occupy8
  • occupy8
  • 2015年01月17日 22:08
  • 11311

FMS4.0 客户端访问服务器脚本文件 main.asc

借用下网上一个例子,一个简单的客户端通过访问服务器具有涂鸦功能的应用。略微修改。 1.客户端 package { import flash.display.Sprite; impor...
  • Moruna
  • Moruna
  • 2013年04月16日 19:02
  • 3907

FMS/AMS服务器和客户端在同一台机器时出现“安全沙箱冲突”的解决方法

最近在研究FMS/AMS的使用,由于自己只有一台笔记本,所以服务器和客户端都放在同一台机器上使用了,服务器安装、配置都没有问题。        但客户端在连接服务器的时候,即nc.connect("...
  • klamen
  • klamen
  • 2016年05月16日 10:58
  • 734

FMS服务器和客户端之间的远程调用实现

1、客户端呼叫服务器 服务器端main.asc代码如下: Client.prototype.serverFun1 = function(value) { return "value="+value...
  • dc_show
  • dc_show
  • 2014年08月28日 20:03
  • 489

抛弃LCDS和FMS,在tomcat下开发Red5应用(第四篇)-客户端和服务器端的方法互相调用

客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这种方式实现的,当然也有使用RemoteSharedObject来实现的,但本人不太喜欢用RemoteSharedObject,只是用Rem...

抛弃LCDS和FMS,在tomcat下开发Red5应用(第五篇)-客户端和服务器端方法调用的参数传递

在上一篇演示了客户端和服务器端方法调用,其实已经一并演示了参数传递的过程,但都是基本数据类型(ps:AS3的String,int,Number,Boolean,Array,Object对应到red5这...

用ActionScript3客户端库访问Flash/ AIR项目中所有的谷歌分析数据

谷歌分析(Google Analytics)博客推出 了一个新的ActionScript3客户端库,这个库提供了一种简单的方法来访问AIR应用程序和Flash播放器(虽然是代理)的分析数据。开发人员...
  • wkyb608
  • wkyb608
  • 2011年01月28日 10:20
  • 465

ActionScript 3.0 学习(十五) 基于as的聊天程序,服务器端和客户端

原文地址:http://www.cnblogs.com/wonderKK/archive/2013/03/20/2970930.          新的air sdk 新增了 ServerSo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FMS客户端 ActionScript NetConnection类
举报原因:
原因补充:

(最多只允许输入30个字)