fms服务端语法

来源:互联网 发布:久其软件 决算 编辑:程序博客网 时间:2024/06/05 09:20

Application(1)

Application.acceptConnection()

可用性

Flash Communication Server MX 1.0

用法

application.acceptConnection(clientObj)

参数

clientObj 一个Client对象;一个要接受的客户

返回

描述

方法;接受所有来自客户端到服务端的连接。当客户端调用NetConnection.connect()时,服 务端通过调用application.onConnect处理事件来通知脚本。你可以在application.onConnect处理事件中使用 application.acceptConnection()方法去接受来自客户端的连接。你也可以在application.onConnect处理 事件外使用application.acceptConnection()方法去接受处于被置于挂起状态的客户端连接(举个例子,去验证用户的名字和密 码)

当你使用组件而且你的代码包含外在的application.acceptConnection()或者 application.rejectConnection回复时,在onConnect处理事件的最后一行(按执行顺序)应该不是 application.acceptConnection()就是application.rejectConnection()。同样,所有外在 accecptConnection或者rejectConnection语句必须放在application.onConnectAccept和 application.onConnectReject语句中,否则它将会被忽略。这个要求只有你使用组件时才存在。

示例

下面的例子是用application.acceptConnection()方法接受来自client1的连接:

application.onConnect = function(client1) {
 //这里可以插入代码
 application.acceptConnection(client1);
 client1.call("welcome");
};

注意:这个例子展示的代码是在没有使用组件的应用程序中

另请参见

Application.onConnect, Application.rejectConnection()

Application.allowDebug

可用性

Flash Media Server 2

用法

Application.allowDebug

描述

属性;一个布尔值,允许管理员通过approveDebugSession()服务器管理API可以或者不可以访问你的应用程序。一个调试连接显示关于共享对象(shared object)和流(streams)的信息。

更多关于创建一个调试连接,查看NetConnection.connect()approveDebugSession()

Application.broadcastMsg()

可用性

FLash Media Server 2.

用法

application.broadcastMsg(cmd[,p1,p2,...pN])

参数

cmd 一个字符串;要广播的消息

p1 一个字符串;附加的消息

返回

描述

方法;广播一条消息到所有连接的客户

这个方法等效于通过Application.clients数组的循环并为每个独立的用户调用Client.call(),但是它更有效(特别是针对大量客户端连接).唯一的区别是当你调用broadcastMsg()时你不可以指定一个返回响应的对象。

共享对象可以通过SharedObject.handlerName属性来处理广播消息。

示例

下面是服务端的代码用来发送一个消息到客户端

application.broadcastMsg("handlderName", "Hello World");

下面是客户端的代码用来捕获消息并显示到输出面板:

nc = new NetConnection();
nc.handlerName = function(msg) {trace(msg); }
//输出面板显示 "Hello World"

Application(2)

Application.clearSharedObjects()

可用性

Flash Communication Server MX 1.0

用法

Apllicaion.clearSharedObjects(soPath)

参数

soPath 一个显示为共享对象url的字符串(the url of a shared object)

返回

布尔值;true如果在指定路径中的共享对象被删除;否则为flase;如果使用通配符来删除多个文件,该方法只有当所有和通配符匹配的共享对象被成功删除时返回true;否则返回flase;

描述

方法;删除soPath参数指定的永久共享对象(FSO 文件)并且清除活动的共享对象(永久的和临时的)所有属性。

soPath参数指定共享对象的名称,在路径中该名称可以在目录之间包含正斜杠(/)作为分隔符。最后一个在路径中的元素可以包 含通配符(举例来说一个问号[?]和一个星号[*])或者共享对象的名字。application.clearSharedObjects()方法通过指定共享对象的层次来 清除所有的共享对象.只指定一个正斜杠(/)将删除所有的和应用对象实例关联的共享对象.

如下是soPath参数的可能值:

1. / 清除所有和应用程序实例关联的本地和永久共享对象

2. /foo/bar 清除共享对象/foo/bar;如果bar是目录名字,将不会有共享对象被清除

3. /foo/bar/* 清除所有在应用程序实例目录/foo/bar下的共享对象。如果有临时共享对象在自己的命名空间使用中,bar目录也同样会清除

4. /foo/bar/xx?? 清除所有以xx为开头,后面可以为两个任意字符的共享对象.如果一个目录的名字匹配这个规范,在目录内部的所有共享对象将被清除

如果你调用clearSharedObject()方法并且指定路径中匹配的共享对象正在活动中,它的所有属性将被清除,并且一个"clear"事件将发往到所有该共享对象的订阅者。如果它是一个永久的共享对象,永久的存储也会被删除。

示例

如下的例子清楚所有应用程序实例的共享对象

functin onApplicationStop() {
 application.clearSharedObjects("/");
}

另请参见

SharedObject.clear();

Application.clearStreams();

可用性

Flash Communication Server MX 1.0

用法

application.clearStreams(streamPath);

参数

streamPath 一个显示流URL的字符串(the URL of a stream)

返回

一个布尔值;如果流在指定的位置被删除返回true;否则为flase。如果使用通配符来清除多个流文件,该方法只有当所有和通配符匹配的流删除成功时返回true;否则返回false;

描述

方法;清除所有和应用程序实例相关联的录制流(FLV)文件和MP3文件。你可以使用这个方法来清除单独的流,所有和应用程序实例相关联的流,和那些指定应用程序实例子目录的流,也或者那些和通配符匹配的流文件。

参数streamPath指定流的位置和名字,相对于应用程序实例的目录。你可以使用正斜杠(/)来分割路径中的目录.
路 径中的最后一个元素可以包含通配符(举例来说,一个问号[?]和一个星号[*])或者为流的名字。application.clearSteams()方 法通过指定路径的流的层次来访问并且清楚所有的和通配符匹配的录制流。指定一个正斜杠将清除所有和应用程序相关联的流。

要清除和应用程序相关联的MP3文件,流文件的路径要以mp3:开头(举例来说,mp3:/streampath)。缺省状态下,application.clearStreams()方法只清除录制的FLV流文件。你可以直接通过在流路径前放入flv:来显式只删除FLV流文件。查看如下清除FLVMP3文件的部分例子。

如下的例子展示一些关于参数streamPath的可能值:

1. / 或者 flv:/ 清除所有和应用程序实例相关联的录制流(FLV)

2. /report 从应用程序实例目录中清除名为report.flv的录制流文件

3. /presentations/intro 从应用程序实例子目录presentations中清除名为intro.flv的录制流文件;如果intro是一个目录名称,将没有流被删除。

4. /presentations/* 从应用程序实例子目录presentations中清除所有的录制流文件。/persentation 子目录如果在自己命名空间中没被使用也同样被删除

5. mp3:/ 清除所有和应用程序实例相关联的MP3文件

6. mp3:/mozart/requiem 从应用程序实例子目录/mozart中清除名为requiem.mp3MP3文件。

7. mp3:/mozart/* 从应用程序实例子目录/mozart中清除所有的MP3文件

8. /presentations/reprot?? 清除所有以"reprot"开头,后面为两个任意字符的录制流文件(FLV)。如果这里有些目录同于给定的目录列表,匹配report??目录中的任何流将被删除。

如果application.clearStreams()方法在当前流文件录制时被调用,录制文件将被设置为长度0(清除),并且内在的缓存数据也被删除。

注意:你也可以使用服务器管理动作脚本APIremoveApp方法来删除单个应用程序实例的所有资源。

示例

如下的例子清除所有的录制流:

function onApplicationStop() {
 application.clearStream("/");
}

如下的例子从应用程序子目录/disco中清除所有的MP3文件:

function onApplicationStop() {
 application.clearSteam("mp3:/disco/*");
}

Application(3)

Application.clients

可用性

Flash Communication Server MX 1.0

用法

application.clients

描述

属性(read-only);包含所有当前连接到应用程序的flash客户端或其他Flash Meida server的一个对象。这个对象是自定义对象,有点像数组,但是它只有一个属性,length。每个在对象中的元素都指向客户端对象实例,并且你可以使 用length属性去测定连接到应用程序的用户数量。你可以使用数组访问符([])通过application.clients来访问对象中的每个元素。

用于clients属性的对象不是数组,但是它具有相同的效果只是有一点区别:你不可以使用下面的语法枚举对象。

for(var i in application.clients){
//这里可以插入代码
}

相反,可以使用如下的代码循环访问在clients对象中的每个元素:
for(var i = 0; i < application.clients.length; i++) {
// 这里可以插入代码
}

示例

如下的例子是用for循环来访问在application.clients数组中的成员并且在每个客户端调用serverUpdate方法:

for( i = 0; i < application.clients.length; i++) {
applicatin.clients.call("sererUpdate");
}Application(4)

Application.onAppStart

可用性

Flash Communication Server MX 1.0

用法

application.onAppStart = function() {}

参数

返回

描述

处理事件; 当服务器第一次载入应用程序实例是调用。你可以用这个事件来初始化应用程序状态。你也可以使用application.onAppStart和 application.onAppStop来初始化和清除在应用程序中的全局变量,因为在应用程序实例的生命周期中这些事件仅仅调用一次。

示例

下面的例子为application.onAppStart事件定义一个匿名函数来发送一个trace消息:

application.onAppStart = function() {
 trace("onAppStart called");
};

Application.onAppStop

可用性

Flash Communication Server MX 1.0

用法

application.onAppStop = function(info){}

参数

info 一个信息对象用来解释应用程序为什么停止运行

返回

通过你定义的函数来返回值,要么没有或null。若拒绝卸载应用程序,返回false.若卸载应用程序,返回true或者任何非false值。

描述

处理事件; 当相关的应用程序被服务器卸载时调用。当这个处理事件被调用时你可以自定义一个函数来执行。如果函数返回true,应用程序会卸载。如果函数返回 false,应用程序不会卸载。如果你没有为这个处理事件自定义一个函数,或者返回的值不是一个布尔值,当处理事件调用时应用会被卸载。

Flash Meida 服务器应用程序传递一个信息对象到application.onAppStop事件中。你可以使用服务端动作脚本来查看这个信息对象来决定在你自定义函数 该做什么。你同样可以自定义application.onAppStop事件在关闭千去通知用户。

如果你使用 管理控制台或者服务器管理动作脚本API来卸载Flash Meida Server的应用程序,application.onAppStop不会被调用。那时你不能再使用application.onAppStop事件,举 个例子,你可以告诉用户应用程序已经存在。

示例

下面的例子定义一个函数来完成关闭应用程序操作。这个函数然后被赋予处理事件,那么当事件被调用时它就会执行。
function onMyApplicationEnd(info){
//DO all the application-specific shutdown logic here.
}

application.onAppStop = onMyApplicationEnd;

Application.onConnect

可用性

Flash Communication Server MX 1.0

用法

application.onConnect = function(clientObj[, p1, ..., pN]){}

参数

clientObj 一个客户对象。连接到应用程序的客户

p1..., pN 传递到application.onConnection事件的参数。当一个客户连接到应用程序时这些参数从客户端的etConnection.connect事件传递过来。

返回

你 提供的值。如果你返回一个true布尔值,服务器将接受连接;如果值为false,服务器将拒绝连接。如果你放回null或没有返回值,服务器将把客户放 到挂起状态并且客户端不可以接受或者发送消息。如果客户端被放置到挂起状态,你必须调用application.acceptConnection()或 者application.rejectConnection()在以后的时间里用来接受或拒绝连接。举个例子,你可以在你的 application.onConnect处理事件中通过一个NetConnection会话来为应用程序服务器执行一个外部的验证而且你有个回复事件 调用application.acceptConnection()或者application.rejectConnection(),并且依靠从回复 事件接受信息。

你同样可以在application.onConnect处理事件中调用application.acceptConnection 或者 application.rejectConnection。如果你调用了,任何通过函数的返回值将被忽略。

注意:返回 或者 不同于返回true 或者 flase。值10将和其他数值一样对待并且不会接受或拒绝一个连接。

描述

事件处理;当NetConnection.connect在客户端被调用并且客户尝试去连接一个应用程序时该事件将在服务端调用。
你可以为application.onConnect处理事件定义一个函数。如果你不定义一个函数,默认情况下连接将被接受。如果服务器接受一个新的连接,application.clients对象将会被更新。

你 可以在服务端脚本中使用application.onConnect事件来执行验证。所有准备验证的信息应该被当作客户端的参数(p1,...,pN)传 送到服务器。在随后的验证中,脚本可以设置访问所有服务端对象的权限(通过修改Client.readAccess和 Client.writeAccess属性来设置)

如果这里有几个同时连接到应用程序的请求,服务器连续的 响应请求结果再同一时间只有一个application.onConnection事件被执行。一个好的方法是为 application.onConnection函数写一些代码,以快速的处理用来预防客户的较长的连接时间。

注 意:如果你使用framework组件(也就是,你在你的服务端脚本文件中载入你components.asc文件)你必须使用 Application.onConnectAccept方法去接受客户的连接。更多信息请查看 Application.onConnectAccept.

示例

如下例子展示了onConnect事件的三种基本用法:

(用法1)

application.onConnect = function(clientObj[, p1, ..., pN]) {
 //在这里插入验证客户的方法
 //返回null使客户端处于挂起状态
 return null;
}

(用法2)

application.onConnect = function(clientObj[, p1, ..., pN]) {
//在这里插入验证客户的方法
//如下的代码接受连接
 application.acceptConnection(clientObj);
}

(用法3)

application.onConnect = function(clientObj[, p1, ..., pN]) {
//在这里插入验证客户的方法
//下面代码通过返回true来接受客户的连接
return true;
}

下面的例子校验用户发送的密码"XXXX".如果密码被接受,用户的权限将被修改,并且用户可以完成这个连接。在这个例子里,用户可以创建或者修改在用户自己目录的流和共享对象并且可以读取或者察看任何在这个应用程序实例里面的共享对象和流。

//下面的代码应该被放在全局的范围。

application.onConnect = function(newClient, userName, password) {
//Do all the application-specific connect logic.
 if(password == "XXXX"){
 newClient.writeAccess = "/" + userName;
 this.acceptConnection(newClient);
 }else{
 var err = new Object();
 err.message = "Invalid password";
 this.rejectConnection(newClient, err);
 }
}

如果密码不正确,用户将被拒绝并且一个含有message(值为"Invalid password")属性的信息对象被返回到客户端.这个对象被委派为infoObject.applicaton。在客户端可以使用下面的代码来访问message属性。

ClientCom.onStatus = function(info){
 trace(info.application.message);
 //输出 "Invalid password"
}

Application(6)

Application.onDisconnect

可用性

FLash COmmunication ServerMX 1.0

用法

application.onDisconnect = function(clientObj){}

参数

clientObj 一个客户端对象;从应用程序断开的客户

返回

服务器忽略任何返回值

描述

处理事件;当客户从应用程序断开始调用。你可以使用这个事件强制清除任何客户状态信息或者用来通知其他用户。这个是可选的。

示例

下面例子是用一个匿名函数并把它附加到application.onDisconnect处理事件上:

//This code should be placed in the global scope

application.onDisconnect = function(client){
//Do all the client-specific disconnect logic.
//Insert code here.
trace("user disconnected");
}

Application.onStatus

可用性

Flash Communication Server MX 1.0

用法

application.onStatus = function(infoObject){}

参数

infoObject 一个包含error level, code和某些描述更多信息,查看"服务端信息对象"

返回

任何回调函数返回的值

描述

处 理事件;当在处理作用于当前应用程序实例消息发现错误时调用。application.onStatus处理事件是所有Stream.onStatus或 NetConnection.onStatus消息的根事件,即使它们没有发现操作。同样,这里有一些状况仅仅来自 application.onStatus。这个处理事件也被用在调试产生的错误消息。

示例

如下的例子定义了一个函数用来当application.onStatus方法被调用时发送一个trace语句。你也能定义一个函数用来为用户指定一个返回的错误类型。

appInstance.onStatus = function(infoObject){
trace("An application error occurred");
}

Application.registerClass()

可用性

Flash Communication Server MX 1.0

用法

application.registerClass(className, constructor)

参数

className 动作脚本类的名称

constructor 在初始化对象期间构造函数用来创建指定类的对象。构造函数的名称必须和类(className)的名称一样。在对象初始化期间,构造函数的名称被初始化为 对象的类型。要卸载一个类,请传递一个null作为构造函数(constructor)参数的值。初始化的过程是把一个对象变成一些东西,你可以通过互联 网传递这些东西到其他电脑上。

返回

描述

方法;注册一个构造函数用来当初始化当前类对象时使用。如果类的构造函数没有注册,你将不能调用初始化对象的方法。这个方法也同样被用在卸载一个类。这个是服务器的高级应用,仅仅当必须在客户端和服务器发送动作脚本对象时使用。

服 务端和客户端通过网络连接来通讯。因此,如果你使用已有的对象类型,每一边都必须有相同的对象属性供它们使用。换句话说,在服务端和客户端的动作脚本都必 须定义和声明它们共享的数据类型,所以这里很清楚一个关系,就是客户端上的对象,方法或者属性在服务端都用与之对应的元素。你可以使用 application.registerClass来在服务端注册一个对象类的类型,然后你可以使用在类中定义的方法。

构造函数应该被用来初始化属性和方法;它们不应该被用来执行服务端的代码。构造函数在接收到来自客户端的消息时被自动执行,这就需要小心他们被恶意的客户端执行。你不应该定义一个可能导致负面情况的程序,诸如填满硬盘或者是浪费处理器资源。

构造函数会在对象的属性被设置前调用。一个类可以定义一个onInitialize方法,它会在初始化完对象所有的属性后调用。你可以使用这个方法在对象初始化后处理数据。

如果你注册一类,它的原型指向另外一个类,在设置原型后你必须设置原型的宿主返回到原来的类。如下的两个例子描绘了这点.

注意:客户端的类必须定义为function function_name(){}的形式,就像下面的两个例子中。如果你不用正确的方法定义,当类的实例从客户端传递到服务端时application.registerClass将不会准确地识别,并且一个错误将被返回。

下 面的例子定义一个Color构造函数和它的属性和方法。当应用程序连接后,registerClass方法将被调用用来为Color对象类型注册一个类。 当注册的对象类型从客户端发送到服务端时,这个类将被调用用来创建一个服务端对象。在应用程序停止后,registerClass方法再次被调用并且传递 一个null值用来卸载类。

function Color(){
this.red = 255;
this.green = 0;
this.blue = 0;
}

Color.prototype.getRed = function() {
return this.red;
}
Color.prototype.getGreen = funtion(){
return this.green;
}
Color.prototype.getBlue = function(){
return this.blue;
}
Color.prototype.setRed = function(value){
this.red = value;
}
Color.prototype.setGreen = function(value){
this.green = value;
}
Color.prototype.setBlue = function(value){
this.blue= value;
}

application.onAppStart = function(){
application.registerClass("Color", Color);
}
application.onAppStop = function(){
application.registerClass("Color", null);
}

下面的例子展示怎么和prototype属性一起使用application.registerClass方法:

function A(){}
function B(){}

B.prototype = new A();
//Set constructor back to that of B.
B.prototype.constructor = B;
//Insert code here
application.registerClass("B", B);

Application(7)

Application.registerProxy()

可用性

Flash Communication Server MX 1.0

方法

application.registerProxy(methodName, proxyConnection[, proxyMethodName])

参数

methodName 方法的名称。对于这个应用程序所有请求执行methodName方法的都相对于proxyConnection对象而言。

proxyConnection 一个ClientNetConnection对象。所有请求执行通过methodName参数指定的远程的方法都被发送到在 proxyConnection参数中指定的ClientNetConnection对象。任何结果将会放回到原来的调用者。要卸载或移走 proxy,请为该参数提供一个null值。

proxyMethodName一个可选参数。如果proxyMethodName不同于通过methondName参数指定的值,服务器在通过proxyConnection参数来指定的对象上执行该方法。

返回

一个值用来返回到发起该会话客户

描述

方法;为 其他函数映射一个会话方法。你可以使用这个方法在不同的应用程序实例间联系,该应用程序实例可以在同一个Flash Media服务器上(或者在不同的Flash Meida服务器上)。客户可以执行任何他们连接到的应用程序服务端的方法。服务端脚本可以使用这个方法来为其他的应用程序实例注册一个远程的方法,该应 用实例可以在同一个服务器或不同的服务器。你可以移开或卸载proxy通过为调用这个方法,并且一个null值到proxyConnection参数中, 这将导致同一操作将不再注册这个方法。

示例

在 如下的例子中,application.registerProxy方法将在application.onAppStart处理事件中被调用,并且当应用 程序启动时执行。在函数中,一个名叫myProxyNetConnection对象将被创建和连接。然后 application.registerProxy方法将调用委派到myProxy对象的getXyz方法。

application.onAppStart = function() {
var myProxy = new NetConnection();
myProxy.connect("rtmp://xyz.com/myApp");
application.registerProxy("getXyz", myProxy);
};

Application.rejectConnection()

可用性

FLash Communication Server MX 1.0

用法

application.rejectConnection(clientObj, errObj)

参数

clientObj要拒绝的客户

errObj 一个任意类型对象,它被发送到客户端,用来解释被拒绝的原因。errObj对象在客户端脚本中被作为信息对象的application属性使用,那是由于当连接被拒绝时它被传递到application.onStatus会话中。更多信息,查看附录

返回

描述

方法;拒 绝一个来自客户端到服务端的连接请求。当一个新的用户正在连接时application.onConnect处理事件会通知一个脚本。委派一个函数给 application.onConnection,你可以拒绝或接受连接。你也同样可以为application.onConnect定义一个函数,用 来验证到应用程序服务器的请求。在这种情况下,应用程序应该从应用程序服务器响应回调中调用application.rejectConnection方 法来从服务器拒绝客户连接。

当你使用组件而且你的代码包含外在的 application.acceptConnection()或者application.rejectConnection回复时,在 onConnect处理事件的最后一行(按执行顺序)应该不是application.acceptConnection()就是 application.rejectConnection()。同样,所有外在
accecptConnection或者rejectConnection语句必须放在application.onConnectAcceptapplication.onConnectReject语句中,否则它将会被忽略。这个要求只有你使用组件时才存在。

示例

如下的例子,指定为client1的客户端被拒绝并且提供一个错误消息包含在err.message中。消息"Too many connections"将出现在服务端

function onConnect(client1){
//Insert code here
var err = new Object()
err.message = "Too many connections";
application.rejectConnection(client1, err);
}

application.onConnect = onConnect

如下的代码应该出现在客户端:
clientConn.onStatus = function(info){
if(info.code = "NetConnection.Connect.Rejected"){
trace(info.application.message);
//Sends the message
//"To many connections" to the Output panel
//on the client-side
}
};Application(7)

Application.registerProxy()

可用性

Flash Communication Server MX 1.0

方法

application.registerProxy(methodName, proxyConnection[, proxyMethodName])

参数

methodName 方法的名称。对于这个应用程序所有请求执行methodName方法的都相对于proxyConnection对象而言。

proxyConnection 一个ClientNetConnection对象。所有请求执行通过methodName参数指定的远程的方法都被发送到在 proxyConnection参数中指定的ClientNetConnection对象。任何结果将会放回到原来的调用者。要卸载或移走 proxy,请为该参数提供一个null值。

proxyMethodName一个可选参数。如果proxyMethodName不同于通过methondName参数指定的值,服务器在通过proxyConnection参数来指定的对象上执行该方法。

返回

一个值用来返回到发起该会话客户

描述

方法;为 其他函数映射一个会话方法。你可以使用这个方法在不同的应用程序实例间联系,该应用程序实例可以在同一个Flash Media服务器上(或者在不同的Flash Meida服务器上)。客户可以执行任何他们连接到的应用程序服务端的方法。服务端脚本可以使用这个方法来为其他的应用程序实例注册一个远程的方法,该应 用实例可以在同一个服务器或不同的服务器。你可以移开或卸载proxy通过为调用这个方法,并且一个null值到proxyConnection参数中, 这将导致同一操作将不再注册这个方法。

示例

在 如下的例子中,application.registerProxy方法将在application.onAppStart处理事件中被调用,并且当应用 程序启动时执行。在函数中,一个名叫myProxyNetConnection对象将被创建和连接。然后 application.registerProxy方法将调用委派到myProxy对象的getXyz方法。

application.onAppStart = function() {
var myProxy = new NetConnection();
myProxy.connect("rtmp://xyz.com/myApp");
application.registerProxy("getXyz", myProxy);
};

Application.rejectConnection()

可用性

FLash Communication Server MX 1.0

用法

application.rejectConnection(clientObj, errObj)

参数

clientObj要拒绝的客户

errObj 一个任意类型对象,它被发送到客户端,用来解释被拒绝的原因。errObj对象在客户端脚本中被作为信息对象的application属性使用,那是由于当连接被拒绝时它被传递到application.onStatus会话中。更多信息,查看附录

返回

描述

方法;拒 绝一个来自客户端到服务端的连接请求。当一个新的用户正在连接时application.onConnect处理事件会通知一个脚本。委派一个函数给 application.onConnection,你可以拒绝或接受连接。你也同样可以为application.onConnect定义一个函数,用 来验证到应用程序服务器的请求。在这种情况下,应用程序应该从应用程序服务器响应回调中调用application.rejectConnection方 法来从服务器拒绝客户连接。

当你使用组件而且你的代码包含外在的 application.acceptConnection()或者application.rejectConnection回复时,在 onConnect处理事件的最后一行(按执行顺序)应该不是application.acceptConnection()就是 application.rejectConnection()。同样,所有外在
accecptConnection或者rejectConnection语句必须放在application.onConnectAcceptapplication.onConnectReject语句中,否则它将会被忽略。这个要求只有你使用组件时才存在。

示例

如下的例子,指定为client1的客户端被拒绝并且提供一个错误消息包含在err.message中。消息"Too many connections"将出现在服务端

function onConnect(client1){
//Insert code here
var err = new Object()
err.message = "Too many connections";
application.rejectConnection(client1, err);
}

application.onConnect = onConnect

如下的代码应该出现在客户端:
clientConn.onStatus = function(info){
if(info.code = "NetConnection.Connect.Rejected"){
trace(info.application.message);
//Sends the message
//"To many connections" to the Output panel
//on the client-side
}
};

Application(8)

Application.server

可用性

Flash Communication Server MX 1.0

用法

application.server

描述

属性(read-only);包含平台和服务器版本信息

示例

如下的例子在执行代码前用if语句检查server属性不同于一个字符:

if(application.server == "Flash Media Server-Window/1.0"){
//Insert code here.
}

Application.shutdown()

可用性

Flash Media Server 2.

用法

application.shutdown()

参数

返回

一个布尔值显示成功(true),或者失败(false)

描述

方法;卸载应用程序实例。

如 果应用程序运行在vhost或者application-level范围,仅仅应用程序实例被卸载,但是核心进程仍然运行。如果应用程序运行在实例范围, 应用程序实例会被卸载并且核心进程会停止。这个进程是不同步执行的;当卸载序列开始时应用程序实例会被卸载,而不是当shutdown()调用返回时。

shutdown()被调用后,Application.onAppStop会被调用,当前连接的客户会被断开,并且会为每个客户调用Application.onDisconnect。在shutdown()会话后面生成的请求将不会被执行。

示例

如下的例子,指定为client1的客户端被拒绝并且提供一个错误消息包含在err.message中。消息"Too many connections"将出现在服务端

function onConnect(client1){
//Insert code here
var err = new Object()
err.message = "Too many connections";
application.rejectConnection(client1, err);
}

application.onConnect = onConnect

如下的代码应该出现在客户端:
clientConn.onStatus = function(info){
if(info.code = "NetConnection.Connect.Rejected"){
trace(info.application.message);
//Sends the message
//"To many connections" to the Output panel
//on the client-side
}
};

Application.config

可用性

Flash Media Server 2

用法

application.config

描述

如下使用Application.xml文件中的<ApplicationObject>标签来为Application.config作例子:

<Application>
<JSEngine>
 <ApplicationObject>
 <config>
 <user_name>jdoe</user_name>
 <dept_name>engineering</dept_name>
 </config>
 </ApplicationObject>
</JSEngine>
</Application>

下面任何一行的代码都访问相同的Application属性定义在上面的Application.xml文件中:

trace("I am " + application.config.user + " and I work in the " +application.config.dept_name + " department.");

trace("I am " + application.config["user"] + " and I work in the " + application.config["dept_name"] + " department.");

下面的代码发送到应用程序日志文件中并且应用程序检测:

I am jdoe and I work in the engineering department.

Application.disconnect()

可用性

Flash Communication Server MX 1.0

用法

application.disconnect(clientObj)

参数

clientObj 断开的客户端。这个对象必须是来自application.clients数组的客户端对象。

返回

一个布尔值;如果断开成功返回true;否则返回false.

描述

方法; 引发服务器断开客户端到应用程序的连接。当这个方法被调用时,在客户端状态消息NetConnection.Connection.Closed和 NetConnection.onStatus一起被调用。application.onDisconnect事件也同样被调用。

示例

如下的例子调用application.disconnect()方法来断开所有用户和应用程序实例的连接:

function disconnectAll(){
 for( i = 0; i < application.clients.length; i++) {
 application.disconnect(application.clients);
}
}

Application.gc()

可用性

Flash Media Server 2

用法

Application.gc()

参数

返回

描述

方法;调用垃圾回收器来收回应用程序实例所有不使用的资源

Application.getStats()

可用性

Flash Communication Server MX 1.0

用法

application.getStats();

返回

一个动作脚本对象;为每个统计量返回不同的属性

描述

方法;返回应用程序实例的统计量包含发送和接收的字节总数,发送和接收RTMP消息的数量
,丢失消息的数量,连接到应用程序实例客户端的数量,和断开和应用程序实例连接的客户端数量。

示例

如下的例子是用Application.getStats()来输出应用程序实例的统计信息:

stats = application.getStats();
trace("Total bytes received: " + stats.bytes_in);
trace("Total bytes sent: " + stats.bytes_out);
trace("RTMP messages received: " + stats.msg_in);
trace("RTMP messages sent: " + stats.msg_out);
trace("RTMP messages dropped: " + stats.msg_dropped);
trace("Total clients connected: " + stats.total_connects);
trace("Total clients disconnected: " + stats.total_disconnects);

Application.hostname

可用性

FLash Media Server MX 1.5

用法

application.hostname

描述

属性(read-only);服务器或缺省虚拟主机的主机名称,和非缺省虚拟主机的虚拟主机名称。

示例

如下的例子输出当前应用程序运行的主机的名字:

trace(application.hostname)

Apllication.name

可用性

Flash Communication Server MX 1.0

用法

application.name

描述

属性(read-only);包含Flash Media Server应用程序实例的名称

示例

如下的例子在代码执行前检查name属性是否匹配一个指定字符串:

if (application.name == "videomail/work") {
//这里可以插入代码
}

0 0
原创粉丝点击