服务器管理ActionScript API--FCS阅读笔记(十九)

2006-03-09 00:48:13

FlashCom Server MX 1.5 包含了服务器管理的ActionScript API,提供了一些高级的方法集用来扩展管理控制台,让我们可以自己开发Flash应用程序的管理和监视工具。 使用服务器管理ActionScript API 为了使用服务器管理ActionScript API,你必须安装有FlashMX和FlashCom server,并且具有FlashCom Server的管理权限。当然,你还能很熟练的用ActionScript来编写Flash应用程序。 掌握服务器管理ActionScript API最好的方法是查看管理控制台的源代码。注册用户可以在Macromedia的下载中心下载到admin.fla文件。 建立服务器连接 FlashCom Server的默认端口是1935,但是,为了使用服务器管理Actionscript API,你必须连接到管理端口,默认1111。连接服务器的方式和Flashcom应用程序一样使用 NetConnect.connect方法,不同的是需要传递三个参数:服务器管理目录的url,管理员用户名,管理员密码。有效的管理员名称和密码是在配置文件Server.xml中定义的。下面是连接示例: 1 : nc = new NetConnection(); 2 : nc.connect('rtmp://localhost:1111/admin', 'admin', '1234');为了使用更安全的用户认证机制,建议使用防火墙控制对1111端口。[笔者注:更多的关于安全方面的内容以后会专门叙述] 语法示例 要使用服务器端ActionScript API 的方法,你必须使用call指令并使用相应的参数。 下面的示例中,getAppStats方法被调用,并由new receiveAppStats事件处理反馈信息,ChatApp是该方法需要传递的应用程序名参数。 1 : nc = new NetConnection(); 2 : nc.connect('rtmp://localhost:1111/admin', 'MHill', '635xjh27'); 3 : // Call getAppStats 4 : nc.call('getAppStats', new receiveAppStats(), 'ChatApp'); 一个简单的应用程序例子 下面的例子调用了getAppStats方法来查看服务器的应用程序chatApp的状态 appName 是一个文本输入框的实例名 outputBox 是返回结果的文本框实例名 01 : /** Establishes the connection to Flash Communication Server **/ 02 : nc = new NetConnection(); 03 : nc.connect('rtmp://localhost:1111/admin','admin_name','admin_pass'); 04 : /** Makes the API call, for example, 'GetAppStats' **/ 05 : function doGetAppStats() { 06 : function onGetAppStats() 07 : { 08 : this.onResult = function(info) 09 : { 10 : if (info.code != 'NetConnection.Call.Success') 11 : outputBox.text = 'Call failed: ' + info.description; 12 : else { 13 : outputBox.text = 'Info for '+appName.text+ ' returned:' + newline; 14 : printObj(info, outputBox); 15 : } 16 : } 17 : } 18 : nc.call('getAppStats', new onGetAppStats(), appName.text); 19 : } 20 : // This function proceeds through an object, printing all values to the 21 : // destination, including recursively printing objects within objects. 22 : // The tabLevel parameter is used for cosmetic purposes. 23 : function printObj(obj, destination, tabLevel) 24 : { 25 : if (arguments.length < 2) { 26 : trace('ERROR! you need to supply a text object to output to'); 27 : return; 28 : } 29 : if (arguments.length < 3) 30 : tabLevel = 0; 31 : for (var prop in obj) { 32 : for (var i = 0; i < tabLevel; i++) // i_nsert requested # of tab characters 33 : destination.text += '\t'; 34 : destination.text += prop + ' = ' + obj[prop] + newline; 35 : if (typeof (obj[prop]) == 'object') { // recursively call printObj 36 : printObj(obj[prop], destination, tabLevel+1 ); 37 : } 38 : } 39 : } 40 : // Alerts you if there are errors connecting to the server.nc.onStatus = 41 : function(info) { 42 : if (info.code == 'NetConnection.Connect.Success') { 43 : trace('Connected! The call should work') 44 : } else { 45 : // use nc.isConnected to test condition of server 46 : if (! nc.isConnected) 47 : trace('NO netConnection to server. Call will not work'); 48 : } 49 : } 服务器端信息对象 所有服务器端ActionScript API 方法返回值都都保存在信息对象的相关属性中,这些属性和客户端的信息对象属性有所区别,分别是:level, code, timestamp, data, description和 details。其中level, code和 timestamp 属性是全部都具备的,其它属性是某些方法才具有的。data属性通常用来返回对象或数组数据,description和details属性通常提供一些错误信息。 方法总结 服务器管理ActionScript API包含了三种类型的方法: 查询方法:查看你的FlashCom服务器、应用程序和指定的应用程序实例的状态信息; 管理方法:对Flashcom服务器的用户管理、服务器管理和应用程序管理等 配置方法:查看和设置服务器的配置文件 有些方法只有管理员才有权限操作(用*号注明),虚拟主机的管理员不能够使用这些方法。 查询方法概要 01 : getActiveInstances 返回包含所有正在运行中的应用程序实例名的数组 02 : getAdaptors Returns an array of adaptor names. 03 : getAdminContext Returns the administrative context for the administrator (administrator type, name of 04 : adaptor, and name of the virtual host). 05 : getApps 返回所有应用程序的名称数组 06 : getAppStats 返回指定应用程序的所有实例的集合信息 07 : getInstanceStats 返回当前运行的应用程序实例的详细信息 08 : getIOStats 返回 I/O 信息 * 09 : getLicenseInfo 返回license 信息 10 : getLiveStreams 返回指定应用程序当前发布的所有实时串流信息 11 : getLiveStreamStats 返回串流的详细信息 12 : getMsgCacheStats 返回服务器TCMessage缓存状态信息. 13 : getNetStreams 返回当前连接到应用程序的所有的NetStream列表 14 : getNetStreamStats 返回指定NetStream的详细信息. 15 : getScriptStats 得到指定应用程序实例的脚本运行信息 16 : getServerStats 取得服务器状态和统计信息* 17 : getSharedObjects 返回当前应用程序实例的所有共享对象数组 18 : getSharedObjectStats 返回共享对象的详细信息 19 : getUsers 返回连接当前到应用程序实例的所有用户数组 20 : getUserStats 返回指定用户的详细信息 21 : getVHosts 返回虚拟主机的数组 22 : getVHostStats 返回虚拟主机的统计信息 23 : ping 返回服务器状态标记的信息 管理方法概要 01 : addAdmin 添加一个系统管理员* 02 : addApp 添加一个新的应用程序(会自动创建目录) 03 : changePswd 更改管理员密码 04 : gc 强制服务器端的资源垃圾回收* 05 : reloadApp 重启应用程序,会先卸载该应用程序的实例 06 : removeAdmin 删除管理员* 07 : removeApp 删除应用程序或应用程序实例 08 : restartVHost 重启虚拟主机 09 : startServer 启动FlashCom Server* 10 : startVHost 启动指定的虚拟主机* 11 : stopServer 停止FlashCom Server* 12 : stopVHost 停止虚拟主机 13 : unloadApp 卸载应用程序以及所有实例,端口用户连接 配置方法概要 1 : getConfig 返回指定配置键的配置信息 2 : setConfig 设置指定的配置键 关于每个方法的详细资料请参考手册中的说明。