FCS阅读笔记21 Client对象 |
| [来源:世纪流年blog | 作者:世纪流年 | 时间:2008-04-04 | 点击: | 收藏本文 【大 中 小】] |
|
Client对象包含了每个联机用户的信息,例如:客户端的IP地址、Flash和操作系统的信息、分配用户的频宽以及呼叫客户端的函数。该对象必须在服务器端使用。 Clinet对象经常用来呼叫客户端定义的方法,使用Client.call方法 例如我们在客户端定义了一个获取随机数的方法
1 : nc = new NetConnection(); 2 : nc.connect ('rtmp://someserver/someApp/someInst'); 3 : nc.random = function(){ 4 : return (Math.random()); 5 : };
需要在服务器端使用该方法时,就可以通过client对象的call方法
01 : application.onConnect = function(clientObj){ 02 : trace('we are connected'); 03 : application.acceptConnection(clientObj); 04 : clientObj.call('random'
第二个参数是返回对象,如果有参数需要传递,依次跟在后面就可以了。 Client对象可以方便地获取某个客户端的相关信息,包括: Client.agent 客户端的平台和版本信息 Client.ip 客户端的 IP 地址 Client.protocol 客户端连接到服务器的协议 Client.readAccess 客户端具有读操作的权限列表 Client.referrer 客户端swf文件的URL地址 Client.writeAccess 客户端具有写操作的权限列表 使用方法如下:
1 : application.onConnect = function(client){ 2 : if (client.ip == '127.0.0.1'){ 3 : // insert code here 4 : } else { 5 : // insert code here 6 : } 7 : };
请注意不要和application.clients属性相混淆,application.clients是所有联机用户的列表 application.clients[ i ]表示某个Client对象的实例 我们可以这样访问客户端对象的属性,
1 : for (var i = 0; i < application.clients.length; i++) { 2 : trace(application.clients[ i ].ip); 3 : }
关于限制带宽的两个方法 Client.getBandwidthLimit 取得带宽限制值,分别取得客户端到服务器端以及服务器端到客户端的带宽限制,如:
1 : application.onConnect = function(newClient){ 2 : var clientToServer= newClient.getBandwidthLimit(0); 3 : var serverToClient= newClient.getBandwidthLimit(1); 4 : };
Client.setBandwidthLimit(iServerToClient,iClientToServer) 设置带宽限制值 如果某个参数设为0,表示不改变当前的设置值。 查询客户端是否和服务器保持连通状态可以使用Client.ping方法,如
1 : application.onConnect( newClient ) { 2 : if ( newClient.ping() ){ 3 : trace('ping successful'); 4 : } 5 : else { 6 : trace('ping failed'); 7 : } 8 : }
注意有时候ping方法的响应时间比较久,要最有效的侦测客户端是否和服务器端保持连通的方法是client和server端作相向回覆。 如果所有的客户端对象的实例都需要使用相同的属性和方法的时候,你可以把该属性和方法扩展到类中,而不需要在客户端为每一个实例创建方法。这样可以减少客户端的内存占用。这个过程称为类的扩展,你可以扩展任何客户端或服务器端的类。 扩展的方法或属性不需要在类的架构函数中声明(在架构函数中声明的方法和属性在每个实例初始化的时候都会分配一次),通过prototype属性来扩展的方法和属性在所有类的实体中都可以使用。 |
| 上一页12 下一页 |
| 文章如果有错误或者缺少文件,请发邮件提交给我们 |
|
|
|
|
|
|
|
| >>> 最新评论:(共有 0 位网友发表了评论) 查看所有评论 |
|
|
| 发表评论 |
|
| ·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂 |
| ·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任 |
| ·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据 |
| ·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为 |
|