jforgame

轻量级手游服务端框架
授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 手机游戏
软件类型 开源软件
地区 国产
投 递 者 水麒
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

jforgame,一个用java编写的轻量级手游服务端框架。项目只使用简单的业务功能作为演示,主要提供各种支持游戏快速开发的组件,以及对生产环境的服务进行管理的工具。

该框架吸取了笔者参与的众多手游项目的成功经验,从中精挑细选了各个模块的优秀实现。希望每个模块都能以一种优雅简便的api供外部使用。当然,由于笔者经验问题,部分实现仍有诸多不足,希望大家一起完善,一起改进,这也是开源的目的。

main 3rd party

  • Mina,nio socket framework

  • jprotobuf, message codec

  • Guava,memory cache

  • quartz,  job task scheduler

  • groovy, execute script code and class hotswap  

  • proxool,mysql data pool

  • slf4j+log4j,for logging

模块目录

game包是游戏的业务模块, 其余包则是各种辅助模块。允许game包调用其他模块的接口,尽量避免其他模块对game包的调用。各个模块包括:

  • cache包,使用guava cache库,用于支持系统的缓存框架  

  • orm包,使用自定义的orm框架,用于数据库表记录与程序pojo对象的相互转换   

  • db包,使用独立线程,异步处理玩家及公共数据的持久化  

  • monitor包,系统监控模块,包括使用jmx对程序进行监控   

  • net包,包括io网关模块,玩家消息自动映射到业务模块,异步处理玩家消息的线程模型 

  • listener包,事件驱动模型

  • doctor包,采用基于类替换的方式实现热更新(类级热更新而非方法级)

  • game/gm包,游戏内部金手指命令

  • game/http包,游戏运营/运维后台命令

  • logs, 日志系统

  • utils包,各种工具类

  • 项目介绍 jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。 项目特点 搭配框架博客栏目教程,快速理解项目模块原理 支持socket/websocket接入,兼容手游/页游服务端架构 通信协议支持protobuf或java反射,为客户端提供多种

  • 项目介绍 jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。 项目特点 搭配框架博客栏目教程,快速理解项目模块原理 支持socket/websocket接入,兼容手游/页游服务端架构 通信协议支持protobuf或java反射,为客户端提供多种

 相关资料
  • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

  • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

  • 一面 1h - [ ] static关键字 - [ ] 虚函数怎么实现,虚表存在哪里 - [ ] 多继承中的虚函数表结构 - [ ] 两个父类如果同名的虚函数怎么办 - [ ] 内存对齐是什么,规则是什么 - [ ] 怎么自定义规则,什么时候需要自定义 - [ ] 进程的内存分布 - [ ] 虚拟地址是什么,怎么映射成物理地址 - [ ] vector的内存管理 - [ ] vector的扩容机制

  • 7.21投递,没想到要笔试,一直到8.19号才一面。 1.自我介绍 2.对游戏服务端开发的了解 3.C++和Java的区别 4.虚函数、虚函数表 5.两个父类如果同名的虚函数怎么办? 6.C++编译过程以及产生的文件存放什么内容 7.构造和析构函数简单说一下,子类调用顺序?为什么是虚函数? 8.STL中线程安全的有哪些?底层实现是什么? 9.C++多线程 10.epoll,两种触发模式的区别? 1

  • 命名空间相关知识,命名空间作用,是否会产生标识符冲突 什么是重载,返回值不同能否重载 函数重载的底层实现原理 虚函数实现的原理 构造函数和虚构函数能否设置为虚函数 可以在头文件实现函数吗?缺点是什么? gcc编译过程,预处理阶段会把头文件内容全部包含进源文件吗? 独占指针,怎么实现不可复制,能否作为返回值,为什么? 进程和线程的区别,有独立的内存空间吗? 了解什么排序,介绍堆排序过程 手撕题,目测

  • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha