jforgame是一个一站式游戏服务器开发框架。包含游戏服务器开发所需要的各种组件,比如socket服务端与客户端,高性能线程模型,自定义二进制消息编解码,自定义orm工具,游戏热更新,配置表自动化仓库,游戏通用工具等等。包含游戏服,跨服,匹配服,后台管理系统等实现,同时提供大量业务案例以供学习。亦可用于其他socke
jforgame是一个一站式游戏服务器开发框架。包含游戏服务器开发所需要的各种组件,比如socket服务端与客户端,高性能线程模型,自定义二进制消息编解码,自定义orm工具,游戏热更新,配置表自动化仓库,游戏通用工具等等。包含游戏服,跨服,匹配服,后台管理系统等实现,同时提供大量业务案例以供学习。亦可用于其他socke
jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。
…
jforgame采用组件化的方式,每个模块都是一个独立的组件,用户可以根据自己的需求选择导入目标模块。 例如:如果只需要使用socket通信,那么只需要导入jforgame-socket-netty模块或者jforgame-socket-mina。
导入组件
io.github.jforgame
jforgame-socket-netty
latest
io.github.jforgame
jforgame-codec-struct
latest
一行代码启动服务器(socket/websocket)
TcpSocketServerBuilder.newBuilder()
.bindingPort(HostAndPort.valueOf(ServerConfig.getInstance().getServerPort()))
.setMessageFactory(GameMessageFactory.getInstance())
.setMessageCodec(new StructMessageCodec())
.setSocketIoDispatcher(new MessageIoDispatcher(ServerScanPaths.MESSAGE_PATH))
.build()
.start();
消息协议
@MessageMeta(module = Modules.LOGIN, cmd = LoginDataPool.REQ_LOGIN)
public class ReqAccountLogin implements Message {
/**
* 账号流水号
*/
private long accountId;
private String password;
}
消息路由
@MessageRoute
public class LoginController {
@RequestHandler
public void reqAccountLogin(IdSession session, ReqAccountLogin request) {
GameContext.loginManager.handleAccountLogin(session, request.getAccountId(), request.getPassword());
}
}
就是这么简单,写业务只需要依样画葫芦,撸起袖子就是干!!
欢迎star/fork,欢迎学习/使用,期待一起贡献代码!!
如果您发现bug,或者有任何疑问,请提交issue !! bug会被及时修复,并及时发布新的补丁release。
承诺:持续迭代,永久维护!!
mysql合服工程,基于jforgame的分布式五子棋源代码(cocos+h5客户端),私聊获取。
合作/咨询:+Q 641711541
我刚开通了知识星球,快来瞧一瞧吧~~
(加入星主游戏开发微信群,随时随地交流提问~~)
- 非常欢迎大家一起来维护这个项目,提交代码的时候请按以下规范
```
feat[模块]:新增功能
fix[模块]:修复缺陷/BUG
test[模块]:新增/调整测试用例
doc[模块]:补充、更新文档
refactor[模块]:代码重构/结构调整
upgrade[模块]:升级依赖/插件版本
clean[模块]:移除废弃工具方法与冗余代码
```
e
感谢网友CarsonQizhao提供的commons多个优秀的工具类;
感谢网友wupeng0528为threadmodel模块引入Akka风格的Actor配置系统;
感谢网友fagarine解决hotswap在jdk17环境不生效的问题;
以及其他所有参与项目的网友(包括并不限于提出issue,在聊天讨论提出建议或bug),万分感谢!!
本项目只用于学习研究,禁止用于非法获利和商业活动。如产生法律纠纷与作者无关!!
No open issues yet, or sync has not completed.