XXO类似于网关,进行业务分发,很大一部分应用都是先接入到XXO,再尤其分发至相应的服务器进行业务处理。
XXO是一套协议,由serviceCmd来控制指示携带的何种业务报文,而业务包体则使用的是WUP协议。
XXO再发送报文前(除了login),必须先经过鉴权。鉴权成功后,即可携带各种业务报文至XXO服务器,XXO服务器再根据serviceCmd进行相应转发。实现XXO客户端最难的不是技术,是了解业务流程。尤其是鉴权,比较复杂,需要在几个服务器之间交换数据,生成各种凭证。一旦鉴权ok后,后续的业务操作就相对简单了。
客户端到XXO服务器采取的是tcp协议,通过编写socket来实现通信。收到的tcp报文通过协议中携带的报文长度进行分割。一旦组装出一个完整的响应包,便丢给上层去进行下一步处理。
WUP协议包体的构建相对简单,采取已有的jar包即可进行组包,解包。协议结构中,有一个协议头,协议包体,一个服务器字段servname,一个业务命令字字段funcname,一个requestId。通过servname,XXO可以将包体透传到该业务服务器,通过funcname,业务服务器会调用相应的解包结构体来进行解包操作。