·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3下p2p NetGroup聊天代码示例(rtmfp协议示例)

时间:2012-12-16 23:03CuPlayer.com
我们需要自己定制一套消息协议,用来处理文本,用户名,发送人ID。发送人ID直接贴出来。我们也需要为组地址转换NetConnection PeerID。当我们给NetGroup发送消息的时候,我们只是分发/广播它,但不回发给我们自己。这就是为什么我们需调用receiveMessage,以

这篇教程讲述的是 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。非常简单

  1. private const SERVER:String = "rtmfp://stratus.adobe.com"
  2. private const DEVKEY:String = "YOUR-STRATUS-DEVELOPER-KEY"
  3. private var nc:NetConnection; 
  4.   
  5. private function connect():void{ 
  6.         nc = new NetConnection(); 
  7.         nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
  8.         nc.connect(SERVER+DEVKEY);        
  9. }  

第三步:建立NetGroup

我 们需要建立P2P group进行连接。GroupSpecifier是一个用来定义group所有参数的类。首先,将它命名为“myGroup/g1”。然后设置 serverChannel与Stratus进行沟通。最后发布。这样,我们就完成了P2P Group的定义。

然后,我们必须确定实际的NetGroup。groupspecWithAuthorizations()返回字符串 - 这是一个组标识符。

或 许你会问,groupspecWithoutAuthorizations()和groupspecWithAuthorizations()之 间有什 么区别。如果你设置了密码,groupspecWithAuthorizations可以发送或组 播,groupspecWithoutAuthorizations只能接收。

  1. private function setupGroup():void{ 
  2.         var groupspec:GroupSpecifier = new GroupSpecifier("myGroup/g1"); 
  3.         groupspec.serverChannelEnabled = true
  4.         groupspec.postingEnabled = true
  5.   
  6.         netGroup = new NetGroup(nc,groupspec.groupspecWithAuthorizations()); 
  7.         netGroup.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
  8.   
  9.   
  10.         user = "user"+Math.round(Math.random()*10000); 
  11. }  

第四步:处理NetStatusEvent

在这里我们将要处理三个事件。当我们连接Stratus的时候我们要设置一个组,当我们连接NetGroup的时候在界面上提示,还有当我们接收到一个消息的时候,在聊天窗上显示它。

  1. private function netStatus(event:NetStatusEvent):void{ 
  2.         trace(event.info.code); 
  3.   
  4.         switch(event.info.code){ 
  5.                 case "NetConnection.Connect.Success": 
  6.                         setupGroup(); 
  7.                         break; 
  8.   
  9.                 case "NetGroup.Connect.Success": 
  10.                         connected = true
  11.   
  12.                         break; 
  13.   
  14.                 case "NetGroup.Posting.Notify": 
  15.                         receiveMessage(event.info.message); 
  16.                         break; 
  17.         } 
  18. }  

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器