当前位置:  编程技术>移动开发
本页文章导读:
    ▪开发手逛服务端,网络连接框架的选择        开发手游服务端,网络连接框架的选择   ......
    ▪ 写在20110916:GMS包合进指南        写在20110916:GMS包合入指南 1.将GMS中的google文件夹拷贝到device/目录下device\zte\products\***2.修改对应项目中的编译文件,将GMS包编入例如:X600.mk 将第6行打开,加入gms.mk文件,在编译的时候,.........
    ▪ editplus除了多余空行       editplus去掉多余空行 1: ^[ \t]*\n   用正则表达式替换 ......

[1]开发手逛服务端,网络连接框架的选择
    来源: 互联网  发布时间: 2014-02-18
开发手游服务端,网络连接框架的选择
 

   JAVA有很多优秀的网络连接框架。Mina、Netty、Gretty、Xsocket都是不错的高性能连接框架,如果做网络游戏服务器该如何选取呢?我简单凭我的了解和使用经验介绍一下,错误之处欢迎指正。

   Apache Mina,以高性能和高扩展性著称,应用广泛。它是基于NIO的TCP/UDP框架,支持各种协议,并且能很容易的整合spring等WEB框架,可以说功能很强大,扩展性很强,较偏向于web应用方面。Mina使用起来需要了解一些通信协议以及NIO的知识,不易入门,好在网上资料很全。

   Netty,据说是Mina的设计者发起的另一个项目,它提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。借鉴早期版本以及mina的经验,它们很类似,但Netty结构更加清晰,更加易用。

   Xsocket,基于NIO的轻量级socket连接框架。封装性很好,架构清晰,在保障高并发、多线程性能的前提下,提供极致地易用性,基本不用了解NIO就能完成高性能的应用开发。个人非常喜欢Xsocket,它客户端和服务端都可以实现,提供了性能可观的NIO socket。简化的API让我不用过多付出连接方面的编码从而将更多的精力用于游戏服务器本身。Xsocket本身并不提供HTTP支持(可以稍微麻烦一点编码实现),不过作者的另一个基于Xsocket的项目XlightWeb是为Http量身定制的轻量级框架,支持websocket,并且秉承了简洁易用的风格。

Xsocket项目地址:http://xsocket.org/

XlightWeb项目地址:http://xlightweb.org/

   通过我的实践发现,XlightWeb的性能虽然不错,但是在高并发高吞吐量下,发挥并不稳定波动较大。而Netty无论是性能还是CPU占用率都稳定得多,性能可以一直维持在较高的水平。所以我的建议是,基于socket的游戏服务器可以优先考虑Xsocket,基于Http的游戏服务器优先考虑Netty,但如果并发量不是特别大,XlightWeb也是不错的选择。当然,如果不怕麻烦,Mina可以应大部分需求,除了游戏服务还可以方便地扩展后台页面。

   题外话,其实做游戏服务器开发,主要的性能瓶颈并不在连接上,特别是手游本身在线量无法比拟端游,加上弱联网趋势,吞吐量也不会有很大压力。另外,JAVA服务器如果是工作在linux环境下,性能会大幅提升。所以,以上列举的框架基本都可以满足一般游戏服务器的需求,根据实际情况选择合适的框架,并把优化的重点放在数据库和IO优化、逻辑优化上,才能真正事半功倍。

   更多内容欢迎关注我的个人主页:http://www.leestorm.com

1 楼 windshome 13 小时前  
自己写一个吧,费不了多少事的!

    
[2] 写在20110916:GMS包合进指南
    来源: 互联网  发布时间: 2014-02-18
写在20110916:GMS包合入指南
1.将GMS中的google文件夹拷贝到device/目录下device\zte\products\***
2.修改对应项目中的编译文件,将GMS包编入
例如:X600.mk
将第6行打开,加入gms.mk文件,在编译的时候,就会将GMS包编入。
$(call inherit-product,device/google/products/gms.mk)
根据这一行上面一行的注释:
#include gms should rm Provision app in generic.mk
那么我们还需要修改
/build/target/generic.mk
把其中的Provision一行删掉。

针对不同国家的定制,要求合入的GMS包中的Apk包会有所差异,可以根据Google提供的Product……文档查找需要合入的相应的Apk,并且GMS包的版本也要按要求合入。如果不需要就从google/app文件夹中删除,并修改针对这些apk的编译文件Android.mk,注释掉即可,下次需要打开注释就OK了。

    
[3] editplus除了多余空行
    来源: 互联网  发布时间: 2014-02-18
editplus去掉多余空行

1: ^[ \t]*\n

 

用正则表达式替换


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
编程技术>移动开发 iis7站长之家
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3