OpenBloX中添加NASREQ应用

OpenBloX中添加NASREQ应用_第1张图片

添加AppEvent

添加NASREQ应用的特定命令,在OpenBloX中没有实现NASREQ应用的相关命令。如:
添加AppEventAARequest类,其继承AppRequest类。
添加AppEventAAAnswer类,其继承AppAnswer类。

添加AVP

在NASREQ应用中,有一些特定的AVP,或者用户自定义的AVP,在OpenBloX中没有实现,因此需要自己实现,可以根据添加的AVP的类型,选择继承合适的AVP父类。

添加AppSession类

服务器端添加AppSession类涉及到的类图如下所示:
OpenBloX中添加NASREQ应用_第2张图片
图2 类图
服务器端的抽象AppSessionNASServer类,继承AppSession类,完成处理请求,发送应答的功能。如方法handleIncomingAARequest,处理AARequest请求,方法sendAnswer,发生AAAnswer应答。
NASServerAppSession继承AppSessionNASServer类,完成方法的具体实现。在实现方法时,该类会使用到类Session和接口NASServerAppListener。
类NASServerAppListenerImpl实现接口NASServerAppListener,完成处理AARequest请求的handleIncomingAARequest方法。
客户端也统一添加AppSession类,用来完成收到应答handleIncomingAAAnswer的处理。

服务器/客户端

实现服务器/客户端节点的功能:
1, 准备配置文件server.xml。
2, 根据配置文件,初始化stack和SessionFactory。
初始化stack时,会调用FactoriesLoader类,需要根据新增加的NASREQ应用,在该类中增加注册新应用的代码。
3, 根据stack,得到Network。
4, 实现接口NetworkRequestListener,并绑定到Network上。
5, 从stack获取PeerTable,并实现接口PeerTableListener,绑定到PeerTable上。
6, 启动stack。服务器端启动stack后,等待着客户端的请求信息。
7, 客户端启动stack后,组装请求信息AARequest,并发送出去。
8, 当客户端完成发送的任务后,等待得到应答信息,然后可根据情况停止客户端的stack。

服务器端功能的实现

1, 接受客户端请求信息
绑定到Network上的NetworkRequestListener,监听客户端的请求。在实现接口NetworkRequestListener的类NetworkRequestListenerNASServer中,服务器端对接收到的请求进行处理,其处理过程如下:
在getSupportedCommands方法中,添加该应用支持的命令,如AARequest。
在processInitialRequest方法中,根据不同的命令,调用AppSession中不同的处
理方法。
2, 回复客户端应答信息
在处理完AARequest请求后,程序创建一个应答信息AAAnswer,并调用AppSession中的sendAnswer方法发送出去。

客户端功能的实现

1, 发送请求信息
组装请求信息,并调用appSession的sendAARequest方法把请求信息发送出去。
2, 接收应答信息
与appSession绑定的接口NASClientAppListener完成接收应答信息的功能。
NASClientAppListenerImpl类实现接口NASClientAppListener,并完成功能
handleIncomingAAAnswer。

 

你可能感兴趣的:(应用服务器,xml)