`
hepeng19861212
  • 浏览: 150404 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多
  • 一、通信架构

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

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

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


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

        2. FlexSpringFactory

 
  

 

 

  • 二、程序分层



 

 

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

 

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

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

UserService. createUserWithCommit()为例:


 

 

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

 

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

  • 大小: 3.6 KB
  • 大小: 2.2 KB
  • 大小: 2.3 KB
  • 大小: 7.4 KB
2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics