- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EasyGame分布式网络游戏服务器解决方案 乔捷 weibo: @analystqiaojie 简介 EasyGame核心库是一套基于.net的分布式服务器框架 类似的项目有Thrift ,但比Thrift更好 在核心库的基础上扩展了一些专为网络游戏设计的基础组件和服务 可适用于端游,页游,手游等领域 提供本地调试环境和线上分布式部署及自动化运维工具 基本结构 特点 基础组件完全基于.net开发 • 为开发者提供十分友好的开发环境,易学易用 • 用简洁高效的代码简化分布式服务器的开发 协议支持多平台和多语言 • 目前支持的有c#, c++, as3, javascript等,用户可以自由的扩展对其他语言的支持 • 可以使用其他语言和平台来开发后端服务 轻量级实现易于扩展 • 不依赖重量级的框架库 • 没有厚重的封装层 • 尽可能的实现非侵入式的设计 借助mono可实现跨平台的部署 • 实现在windows上开发,在Linux上部署 有专门为网络游戏应用优化的消息转发和路由机制 • 可实现很高的并发连接数和消息吞吐量 案例介绍:General War 游戏介绍 2.5D回合制策略,Flash网页游戏 运营平台:海外( GameBox, Facebook, KongreGate) 官方网站: 上线时间:2013年5月 游戏数据 开服数:40组 开发周期:1个人8个月(测试版上线) 代码量:主程序5万行c#代码(包含1.5万行自动生成代码) 压力测试:单路普通服务器单服可承载2w+同时在线玩家 游戏截图 服务器架构图 使用EasyGame带来的优势 简单高效的开发体验 自动化生成客户端/服务端通讯代码和文档 将分布式服务器的编程难度降到最低,没有服务器开发经验的程序员 也可很快上手 很少的代码量 很高的可靠性和健壮性 没有内存越界,悬空指针,内存泄漏,死锁等问题的困扰 完善的异常捕捉和错误log机制保证了Bug的快速定位 为游戏上线后高频率的持续更新提供保障 自动化的运维管理 版本更新,服务状态监控,log管理,运维脚本支持等 很低的运维成本,可以由开发人员兼任运维工作 协议设计 基于RPC的消息通讯模式 二进制消息格式 协议基于.net的metadata来定义,通过代码生成器自动生成客户端和服务端 框架代码 通讯支持同步请求应答模式,双向会话模式,异步请求应答模式 自动化文档生成工具(ndoc),可以方便的生成协议描述文档 丰富的数据类型:基础类型,POD类型,Nullable,Array ,List,Dictionary... 传输协议:TCP ,WebSocket ,HTTP long poll (计划中) 更多功能:高度灵活的定制性,协议的自动化log,自动化性能统计,消息广 播/路由/过滤,消息录像/ 回放 协议定义的例子 服务框架类 设计上摒弃传统的分布式对象模型而采用单实例无状态服务模型 服务采用异步单线程模型处理请求 ,简化了并发编程避免锁开销 状态保存在客户session对象中,session对象会自动插入到请求的第 一个参数中 开发者可自行扩展session类 异步消息处理和异步消息请求联用可以使复杂的分布式服务调用代码变得十分简洁 看一个真实项目的例子: User对象的设计 User类是游戏玩家session的抽象基类,在具体的游戏应 用中开发者可继承和扩展User对象 User类封装了对Agent协议的支持,使Agent对上层逻辑 透明 User类提供消息广播的支持,只要传递一组user
文档评论(0)