PeyoneNetLib 需求 网络游戏中通讯是最基础,也是最核心的模块之一。因为游戏都是有强交互的需求,所以通许协议用tcp来实现,这个库也是为游戏而开发实现的,第一个版本在2008年完成,并且开始在项目里面使用,虽然库的设计是跨平台的,但当时也只是在windows上生产运行,因为当时公司的服务器都是win平台。当时运行了两年,也经历了几十万在线的并发使用基本没有什么问题。 2010年在开发一个游戏项目计费的时候,要用到http协议和服务器通讯。当时因为后台需要支持http协议,但计费逻辑的处理过程中,还需要和游戏服务器进行通讯和一些逻辑上的处理。所以想如果有一个c++实现的http协议栈的模块就好了,当然,异步,大并发支持,可以跨平台最好了,找了很久也没有找到。后来因为项目进度就想用python集成到c++服务器里面来支持http协议,刚开始我选择了cherrypy 来支持http,但测试下来发现根本不行,这个东西支持的并发性太差,就是个儿童玩具。所以就放弃了,后来cyclone模型,看网上说这个模型是异步模型,支持大并发。这个模块的部署很麻烦,依赖很多模块,尽管这样,还是部署了起来,但后面悲催的事情还是发生了,运行一段时间就莫名的宕机,因为依赖太多,所以也只好放弃,临时用php来把http的协议转发到tcp服务器上,虽然这样可以使用,但心里就好像吃了苍蝇一样的恶心。今年又有这样的需求,我下决心要自己实现http协议的支持。这就是我开发这个模块的初中。 我需要的支持大并发,异步模型,可以跨平台。 联系方式: 1265008170@qq.com 功能 支持tcp协议。 支持http协议,get, post , 比较使用于逻辑的使用,不支持文件。 支持异步log功能,支持网络log功能。 支持计数器功能,查看工具已经开发完善。 屏蔽的底层线程模型,对外接口是异步接口。 大并发支持。 底层内存管理,使用了内存池优化。 支持长时间运行,目前最长运行时间为一个月,无内存泄漏,无资源泄漏。 支持python开发,这个库有python版本。 使用 开发环境: win64: vs2012, boost146, python27 Linux: CenterOs6.5 如何使用:伪代码 //初始化模块 TNiceNetParam NetParam; if( !INiceNet::Instance().Init(NetParam ) ) return false; //建立一个本地的tcp监听 TNewServerParam serverparam; INiceNet::Instance().AddServer(serverparam ); //建立一个webService,来支持http协议通讯 TNewServerParam serverparam; INiceNet::Instance().AddHttpServer(serverparam );
http接口
http接口
性能查看工具,
性能工具
|