|
1 概 述
1.1 整体架构
HP-Socket 完全封装了底层通信细节,并为应用程序提供一套简单易用的并且与底层通
信完全无关的 API 接口,使应用程序获得高性能、高伸缩性通信的同时,免除处理通信细节
的负担。HP-Socket 的 API 接口模型如图 1.1-1
HP-Socket定义了组件接口(如:ITcpServer / IUdpClient)、组件实现类(如:CTcpServer
/ CUdpClient)和监听器接口(如:ITcpServerListener / IUdpClientListener),其中:
组件接口:声明组件操作方法,应用程序创建组件对象后通过该接口来使用组件
组件实现类:实现组件接口,执行实际通信处理工作,并向监听器报告通信事件
监听器接口:声明组件的通信事件回调方法
每个组件对象都会关联一个监听器对象(监听器对象的实现类由应用程序定义),当组
件对象触发一个通信事件时会调用监听器对象相应的回调方法,应用程序在回调方法中处理
应用业务逻辑。图 1.1-2 以 TCP Agent 为例展示了组件与应用程序的交互:
应用程序首先创建监听器对象和 TCP Agent 对象,创建 TCP Agent 对象时传入监听器对
象,把 TCP Agent 对象与监听器对象关联起来。TCP Agent 对象创建完毕后,应用程序调用
TCP Agent 接口方法操作 TCP Agent 对象(如:Start / Connect / Send / Stop 等)。当 TCP Agent
对象触发通信事件时,会调用监听器对象的回调方法(如:OnConnect / OnSend / OnReceive
/ Onclose 等)通知应用程序。
注意:监听器对象的异步回调方法是在组件的通信线程中执行的,因此回调方法不应执
行耗时较长的业务逻辑代码,同时要注意多线程同步问题,也应尽量避免使用锁。
HP-Socekt 通过设置“连接绑定”能协助应用程序巧妙地避免由于多线程同步和互斥锁
等导致的复杂性和性能问题。
|
|