腾讯网页游戏qxzb服务器端源码结构分析

  • 一、 通信架构

使用框架BlazeDS,这里略去不谈,感兴趣的同学,可以到adobe官网查看相关资料;和spring框架的整合,请自己google之。

基于AMF协议,自定义了AMFLogEndPoint extends AMFEndpointFlexSpringFactory implements FlexFactory。抛去AMF通信框架不谈,只讲自定义实现类。

  1. AMFLogEndPoint :实现了 AMFEndpoint .createFilterChain() 方法,过程如下 :


腾讯网页游戏qxzb服务器端源码结构分析

解密:远程调用传来的每一个参数的原生类型是字节数组,对这些字节数组解密:调用DefaultDecrypt.decrypt()decrypt调用了DecryptUtil.reverse()来完成解密,解密算法是间隔一定字节数,就将下一字节和key中的一个字节做异或运算。此算法同样用于客户端加密。(这个地方还是很直接借鉴的,嘿嘿)

        2. FlexSpringFactory
腾讯网页游戏qxzb服务器端源码结构分析
 
  

 

 

  • 二、 程序分层


腾讯网页游戏qxzb服务器端源码结构分析
 

 

这里省略了domain层,上图中的任何一层都依赖于domain层。

 

  • 三、 数据库访问层 (DAL)

七雄的代码结构比较混乱,下面是我看了七雄的代码,对七雄的程序结构优化之后总结出来的。

UserService. createUserWithCommit()为例:


腾讯网页游戏qxzb服务器端源码结构分析 

 

个人觉得:这里使用的“事务”根本起不到“数据库事务”的真正作用,仅仅是起到AOP拦截的作用。另外,UtilDB.lockUser(int userId)也是完全没必要的,我看了该方法的实现,简单来说就是加了一个行级锁。相反,我反而认为这个存在重大隐患:假如给用户加了这个锁,但是没有释放,就会导致其他线程一直不能更新此用户数据。

 

完整源码包较大,如果敢兴趣,请加入扣群114784849,在群共享中下载qxzb.zip。

你可能感兴趣的:(网页游戏)