Skip to content
kingston edited this page Sep 13, 2017 · 7 revisions

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

框架网关选择的是Mina,当然,您也可以选择使用Netty,改动的代码应该不大(只是应该,^_^)。

添加需要持久化的db实体

当你有个db数据需要持久化,比如Player对象,只需要让该类继承BaseEntity, 同时Player类加上@Entity,然后在各个需要持久化的字段加上@Column注解。需要特别注意的是,每个BaseEntity至少需要一个字段使用@Id注解作为主键,用于查找与修改操作。当然,你需要在db库加上Player的表结构。 当你的Player对象需要入库,你只需要这样操作 Player p = new Player; p.setId(123456L); p.setName("robot"); p.setInsert(); DbService.getInstance().add2Queue(player); 当你的Player对象有属性变更,你只需要这样操作 player.setUpdate(); DbService.getInstance().add2Queue(player);

使用缓存系统

本框架使用了guava cache构建了一套缓存系统,当你需要获取数据库某个对象时,如果对象已在内存,则直接返回该对象;否则,自动从数据库把它捞取上来并加入缓存,你只需要让对象的业务模块集成CacheService即可。例如: public class PlayerManager extends CacheService<Long, Player>

客户端通信协议声明

客户端通信协议需要继承Message类,请求协议统一以Req开头,推送协议统一以Res开头。Message类需用使用@MessageMeta绑定模块号与cmd。 业务模块号在Modules申明,而cmd在对应的业务模块内部自行定义即可,无需统一管理。

新增业务模块方法

  1. 新增消息映射器XXController,使用@Controller注解;
  2. 绑定请求消息与对应的Method方法,使用@RequestMapper注解,获取请求参数后,转交给对应的业务管理类。

Getting Started

Communicaiton

Clone this wiki locally