页面

2010年7月28日星期三

socket编程时的一般架构

定义一个面积业务的网络接口层,其中有需要向服务端取数据对应的函数,有服务端通知数据的接口,一个简单的如:
class IBFSocket{
    public var onLogin:Function = null;
    public var onBFData:Function = null;
    
    public function doLogin(uid,pass):void{}
    public function doMove(x,y):void{}
}
这个接口其实相当于一个抽象类,自己不实现什么功能,do函数由协议层(真正的socket,会去组织传输的数据,继承自该类)去实现,on函数同客户逻辑端来赋真正的实体函数,这样就在业务层与协议层中间放置了一个接口而使两者透明起来。

    另外在协议层也有个小技巧,协议层也会为两层:socket层和数据处理层,socket只关心接收和发送数据,并验证数据的有效性(很像TCP/IP层),而数据处理层就需要对接收来的数据进行组织,从而交给接口一个适合的数据类型;并且由于socket层的随机性,由socket层向数据处理层传递数据时都只是存入数据处理层的一个缓冲里,而数据处理层可以按照自己的节奏去取数据并处理之(如起一个timer,每隔300ms取一个数据处理)。

没有评论:

发表评论