分布式的Flash Media Server: GridFlash 及其应用实例 |
| [来源: | 作者:changhao | 时间:2008-08-19 | 点击: | 收藏本文 【大 中 小】] |
|
分布式的Flash Media Server: GridFlash 及其应用实例
支持rtmp协议:flash.net.NetConnection,flash.net.NetStream,flash.net.SharedObject
支持amf0 amf3 flv h264
支持链接到不同服务器的flash客户端可以互相查询和通信
支持分布式的NetStream和SharedObject
支持通过连接到一个SharedObject可以监控多个不同服务器中的SharedObject
可以作为插件嵌入到 ie ff zinc
目前还 < 不支持 > 服务器端编程 ( 根据反馈会考虑加入服务器端 lua 编程 )
gridflash 的介绍 http://www.gridflash.com/html/en/overview.ppt
应用实例:(以下例子做的不完善,仅仅为了说明使用GridFlash可以很容易开发分布式flash应用)
注意以下例子使用了 appName="app1" appPass="app1" 这个应用, 使用了 "idc1" "idc2" 两个命名和一个匿名的gridflashserver
你可以修改以下例子的源码 使用自己创建的应用并链接到自己部署的gridflashserver
【一】 用flex做的 多服务器 im 及 flex源码s 用GridFlash做多个server 客户端可以链接到任何一个server flex源码 http://www.gridflash.com/file/GFDemoIM.zip 运行: http://www.gridflash.com/GFDemoIM/GFDemoIM.html 支持 1对1(用flash remoting) 和 多对多(用shared object) 使用步骤: 开两个以上 http://www.gridflash.com/GFDemoIM/GFDemoIM.html 1 用不同的用户名登录 ( 注册 和 登录 的动作差不多 比如你用 user/pass 点击 reg and login 同时完成注册和登录 ) 2 选择一个服务器 点击 connect to im server 3 查找别的client(相当于查找好友),比如我用a 登录 查找 b,c 4 左边好友列表里面双击可以1对1聊天 5 new multi session 创建多人会话,只有创建者可以把别的client加进来,多选左边好友,右下角的addToMultiSession添加
【二】 基于SharedObject做的房间列表和房间及flex源码
用GridFlash做多个server 客户端可以链接到任何一个server flex源码 http://www.gridflash.com/file/GFDemoRoomList.zip 运行: http://www.gridflash.com/GFDemoRoomList/GFDemoRoomList.html
1 先登录或同时注册登录
2 选择一个服务器 链接
3 双击右边的房间可以打开一个房间(closeRoom关闭房间)
右边有房间列表和房间 有聊天房间 相当于聊天室 小球控制房间 双击黄色小球后 用键盘的方向键控制移动
实现说明: 使用monitor sharedobject (name pattern "mul/soname" )表示房间列表
用普通sharedobject (name pattern "gfs/servername/soname" ) 表示房间
monitor sharedobject可以监控多个不同服务器上普通sharedobject的部分属性 至于监控什么样的属性 通过 属性名字的前缀 告诉 monitor sharedobject
但是monitor sharedobject属性名字是***@***格式,前面部分表示属性名字,后半部分表示被监控sharedobject的名字 所以sharedobject属性名字中不要使用"@"字符
比如 monitor=SharedObject.getRemote("mul/myroomlist",conn.uri); 监控哪些 sharedobject 可以通过两种方式指定 链接时 monitor.connect(conn,"list=server1%_%chat0%chat1,server2%M%ball0%ball1"); 表示要监控 gfs/server1/chat0 和 gfs/server1/chat1中以"_"开头的属性 gfs/server2/ball0 和 gfs/server2/ball1中以"M"开头的属性 链接后 monitor.send("addSo","home1%_%chat2,home2%M%ball2");
【三】基于SharedObject 3*3数组 做的MMO(大型多人在线) demo 及flex源码 实现思想: MMO=大型静态场景 + 多人在这个场景中的动态活动 sharedobject相当于许多部署在这个大型场景中的多个传感器
flash客户端维护一个3*3的sharedobject矩阵,随着角色的移动关闭远离的sharedobject,打开靠近的sharedobject 而角色本身始终处于中心位置的sharedobject 注意:不是指so[1][1], 而是由 soi 和 soj动态变化跟踪 除了这9个动态关闭打开的sharedobject外,flash客户端还要有一个roles=new Object(),roles用来保存从这些传感器得到 其他在线用户
so[3][3] soi,soj表示当前角色所在so [topLeft] [top] [topRight] [left] [center] [right] [downLeft] [down] [downRight] topLeft: so[(soi+2)%3][(soj+2)%3] top: so[(soi+2)%3][(soj+0)%3] topRight: so[(soi+2)%3][(soj+1)%3] left: so[(soi+0)%3][(soj+2)%3] center: so[(soi+0)%3][(soj+0)%3] right: so[(soi+0)%3][(soj+1)%3] downLeft: so[(soi+1)%3][(soj+2)%3] down: so[(soi+1)%3][(soj+0)%3] downRight:so[(soi+1)%3][(soj+1)%3]
用GridFlash做多个server 客户端可以链接到任何一个server gridflash 的介绍http://www.gridflash.com/html/en/overview.ppt flex源码 http://www.gridflash.com/file/GFDemoMMO.zip 运行: http://www.gridflash.com/GFDemoMMO/GFDemoMMO.html
1 先登录或同时注册登录
2 选择一个服务器 链接
3 在有黄色小球的tab面板中,双击面板的白色部分,然后用键盘方向键可以移动小球的位置 打开多个http://www.gridflash.com/GFDemoMMO/GFDemoMMO.html 用不同的用户登录 移动到接近的位置就可以看到其他小球 注意黄色小球始终处于中心位置不动,只能看到相对于其他小球的移动
GridFlash是一个分布式的Flash Media Server 实现MMO可以按如下部署 m个 master服务器 master服务器使用不同的名字 用来分布存放不同的sharedobject n个 slave 服务器 slave服务器用来做边缘链接服务器服务器 flash可以连接到任意的slave服务器
商业合作可以联系: changhaohao@gmail.com |
|
| 文章如果有错误或者缺少文件,请发邮件提交给我们 |
|
|
|
|
|
|
|
| >>> 最新评论:(共有 0 位网友发表了评论) 查看所有评论 |
|
|
| 发表评论 |
|
| ·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂 |
| ·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任 |
| ·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据 |
| ·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为 |
|
|
|
 |
教程分类 |
|
|
|
|
|
|