[AS3]as3下p2p NetGroup聊天代码示例(rtmfp协议示例)
这篇教程讲述的是 Flash Player 10.1中的P2P/RTMFP Groups 的基本用法,我们使用RTMFP来建立一个简单的多人聊天室。所有数据将使用P2P的方式进行传输。所以我们要使用最新的 (2010-1-22)AdobeStratus - rendezvous service。
注意点:
1.播放器版本:Flash Player 10.1
2.UDP网络通讯允许(注意你的防火墙)
3.工具:Flash Builder 4
4.Stratus开发者密钥,可以去这里申请
5.player global.swc for Flash Player 10.1
源文件:http://www.webgamei.com/cache/yuanma/fanli/2010/0210/219.html
下载次数: 0
15 分钟前
第一步:新建一个flex4工程
文件 -> 新建 -> Flex 项目
在项目属性中引入playerglobal.swc (FP10.1API)
在flex编译器选项中设置flashplay版本为10.1.0
第二步:连接Stratus
首先,我们需要建立NetConnection去连接Adobe Stratus。非常简单
- private const SERVER:String = "rtmfp://stratus.adobe.com";
- private const DEVKEY:String = "YOUR-STRATUS-DEVELOPER-KEY";
- private var nc:NetConnection;
- private function connect():void{
- nc = new NetConnection();
- nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
- nc.connect(SERVER+DEVKEY);
- }
第三步:建立NetGroup
我 们需要建立P2P group进行连接。GroupSpecifier是一个用来定义group所有参数的类。首先,将它命名为“myGroup/g1”。然后设置 serverChannel与Stratus进行沟通。最后发布。这样,我们就完成了P2P Group的定义。
然后,我们必须确定实际的NetGroup。groupspecWithAuthorizations()返回字符串 - 这是一个组标识符。
或 许你会问,groupspecWithoutAuthorizations()和groupspecWithAuthorizations()之 间有什 么区别。如果你设置了密码,groupspecWithAuthorizations可以发送或组 播,groupspecWithoutAuthorizations只能接收。
- private function setupGroup():void{
- var groupspec:GroupSpecifier = new GroupSpecifier("myGroup/g1");
- groupspec.serverChannelEnabled = true;
- groupspec.postingEnabled = true;
- netGroup = new NetGroup(nc,groupspec.groupspecWithAuthorizations());
- netGroup.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
- user = "user"+Math.round(Math.random()*10000);
- }
第四步:处理NetStatusEvent
在这里我们将要处理三个事件。当我们连接Stratus的时候我们要设置一个组,当我们连接NetGroup的时候在界面上提示,还有当我们接收到一个消息的时候,在聊天窗上显示它。
- private function netStatus(event:NetStatusEvent):void{
- trace(event.info.code);
- switch(event.info.code){
- case "NetConnection.Connect.Success":
- setupGroup();
- break;
- case "NetGroup.Connect.Success":
- connected = true;
- break;
- case "NetGroup.Posting.Notify":
- receiveMessage(event.info.message);
- break;
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例