PureMVC与DarkStar(SGS)通信之接收数据后的处理
2009-01-20 16:21
369 查看
最近准备用PureMVC+DarkStar做一个虚拟社区的游戏,做总感觉完全用PureMVC不太适合,所以对其进行了部分改造,不知道改造方案如何,还请大家多多指点。
今天改造的部分是Proxy,我做了一个专门用于接收和发送数据的类DSSocketProxy,MsgType是管理消息类型的,DSSocketProxy接收到消息后根据类型从MsgType中获取Proxy的NAME(例如LoginProxy)。那些要对接收消息进行处理的Proxy都实现了IMsgFactory接口。这样DSSocketProxy就可以通过Proxy名和实现的接口对消息进行派发。 类图如下:
部分代码如下:接收消息后的处理部分
MsgType类:
今天改造的部分是Proxy,我做了一个专门用于接收和发送数据的类DSSocketProxy,MsgType是管理消息类型的,DSSocketProxy接收到消息后根据类型从MsgType中获取Proxy的NAME(例如LoginProxy)。那些要对接收消息进行处理的Proxy都实现了IMsgFactory接口。这样DSSocketProxy就可以通过Proxy名和实现的接口对消息进行派发。 类图如下:
部分代码如下:接收消息后的处理部分
try { var type:String = msgType.getType("0001"); var proxy:IMsgFactory = facade.retrieveProxy(type) as IMsgFactory; if (null == proxy) { // 利用反射机制创建Proxy实例 type = "com.jacobi.model." + type; var ClassReference:Class = getDefinitionByName(type) as Class; var instance:Object = new ClassReference(null); facade.registerProxy(instance as IProxy); proxy = instance as IMsgFactory; } proxy.analyse("IMsgFactory 测试成功"); } catch(e:Error) { trace(e.toString()); }
MsgType类:
package com.jacobi.sysinterface { import flash.utils.Dictionary; public class MsgType { private static var instance:MsgType = null; // 单例实例 private var types:Dictionary = null; // 消息Hash表 public static function getInstance():MsgType { if (null == instance) { instance = new MsgType(); } return instance; } /** * 创建消息类型表 * */ public function initType():void { types = new Dictionary(); types["0001"] = "LoginProxy"; types["0002"] = "GetFriendsProxy"; } /** * 根据类型获取相应Proxy的NAME * @param key 消息类型 * @return Proxy的NAME * */ public function getType(key:String):String { return types[key]; } } }
相关文章推荐
- c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据
- RS485通信字符串数据接收处理的问题
- 关于通信中数据接收的处理方法讨论
- 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
- c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据
- mscomm控件接收二进制数据后的处理
- Qt从零开始制作串口调试助手-(第十章、串口接收数据处理)-Creator_Ly
- STM32之USART串口接收数据处理
- 通信(Netty、Mina2)【通信粘包的处理】、【数据协议】、【网络系统的安全性】
- Socket 通信发送和接收数据
- Linux 三层、四层接收数据处理函数相关的链表
- ASP发送和接收XML数据的处理方法
- 接收到数据后的处理
- VLC中网络数据流接收处理过程分析
- Linux串口通信中一种接收不到数据的问题的解决
- ajax接收遍历处理json格式数据
- 关于实现接收base64图片数据并以图片保存到本地的处理
- 数据接收中粘包及半包的处理
- 接收socket数据的粘包处理
- 在Django中使用JavaScript代替模板接收并处理数据