jforgame-socket-core内部代码结构调整

This commit is contained in:
kingston-csj
2026-05-30 12:37:00 +08:00
parent eb3d843ed2
commit beac8730ac
123 changed files with 299 additions and 291 deletions
+2 -3
View File
@@ -361,12 +361,11 @@ BeanProcessor#toBean和toBeanList方法内部自动执行BaseEntity#afterLoad()
### jforgame-spring-boot-starter-data
Container去掉#validate()无参方法
Container#validate(DataRepository dataRepository)签名增加DataValidator异常
### jforgame-socket-api
### jforgame-socket-core
jforgame-socket-api更名为jforgame-socket-core
增加RequestScheduler抽象层
CommonMessageHandlerRegister移动到support包下
代码目录结构调整
MessageExecuteUnit更名为MessageHandlerMethod
去掉share目录
CallBackService#closeTimer()更名为shutdown()
TrafficStatistic流量统计移到MessageHandler
@@ -8,7 +8,7 @@ import jforgame.demo.game.database.config.ConfigDataPool;
import jforgame.demo.game.database.config.bean.ConfigCross;
import jforgame.demo.game.database.config.storage.ConfigCrossStorage;
import jforgame.demo.socket.GameSocketFactory;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import org.apache.commons.pool2.BasePooledObjectFactory;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
@@ -1,9 +1,9 @@
package jforgame.demo.cross.core;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.share.message.Message;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
import jforgame.socket.protocol.message.Message;
@MessageRoute
public class CallbackController {
@@ -1,8 +1,8 @@
package jforgame.demo.cross.core;
import jforgame.demo.cross.demo.HelloCallbackHandler;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.message.Message;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.message.Message;
import java.util.HashMap;
import java.util.Map;
@@ -2,8 +2,8 @@ package jforgame.demo.cross.core;
import jforgame.commons.util.JsonUtil;
import jforgame.demo.game.Modules;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
/**
* 跨服回调响应方
@@ -3,8 +3,8 @@ package jforgame.demo.cross.core;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jforgame.commons.util.JsonUtil;
import jforgame.demo.game.Modules;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
import java.util.Base64;
import java.util.HashMap;
@@ -2,8 +2,8 @@ package jforgame.demo.cross.demo;
import jforgame.demo.cross.core.CrossCommands;
import jforgame.demo.game.Modules;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module = Modules.CROSS, cmd = CrossCommands.F2G_HEART_BEAT)
public class F2GHeartBeat implements Message {
@@ -2,8 +2,8 @@ package jforgame.demo.cross.demo;
import jforgame.demo.cross.core.CrossCommands;
import jforgame.demo.game.Modules;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module = Modules.CROSS, cmd = CrossCommands.G2F_HEART_BEAT)
public class G2FHeartBeat implements Message {
@@ -3,7 +3,7 @@ package jforgame.demo.cross.demo;
import jforgame.demo.cross.core.G2FCallBack;
import jforgame.demo.cross.core.CallBackCommands;
import jforgame.demo.cross.core.CallbackHandler;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
public class HelloCallbackHandler extends CallbackHandler {
@@ -4,8 +4,8 @@ import jforgame.demo.game.database.config.ConfigDataPool;
import jforgame.demo.game.database.config.bean.ConfigNotice;
import jforgame.demo.game.database.config.storage.ConfigNoticeStorage;
import jforgame.demo.socket.SessionManager;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.message.Message;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.message.Message;
import org.apache.mina.core.session.IoSession;
import java.util.Collection;
@@ -2,8 +2,8 @@ package jforgame.demo.game.gm.controller;
import jforgame.demo.game.GameContext;
import jforgame.demo.game.gm.message.ReqGmExec;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class GmController {
@@ -3,8 +3,8 @@ package jforgame.demo.game.gm.message;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import jforgame.demo.game.Modules;
import jforgame.demo.game.gm.GmConstant;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
/**
* gm 执行命令
@@ -3,8 +3,8 @@ package jforgame.demo.game.gm.message;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import jforgame.demo.game.Modules;
import jforgame.demo.game.gm.GmConstant;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
/**
* gm执行结果
@@ -1,8 +1,8 @@
package jforgame.demo.game.hello;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class HelloMsgRoute {
@@ -1,7 +1,7 @@
package jforgame.demo.game.hello;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
@MessageMeta(cmd = 888)
public class ReqHello {
@@ -1,6 +1,6 @@
package jforgame.demo.game.hello;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
@MessageMeta(cmd = 999)
public class ResHello {
@@ -11,7 +11,7 @@ import jforgame.demo.game.player.model.AccountProfile;
import jforgame.demo.game.player.model.PlayerProfile;
import jforgame.demo.game.scene.message.ResPlayerEnterScene;
import jforgame.demo.socket.SessionManager;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
@@ -3,9 +3,9 @@ package jforgame.demo.game.login.controller;
import jforgame.demo.game.GameContext;
import jforgame.demo.game.login.message.ReqAccountLogin;
import jforgame.demo.game.login.message.ReqSelectPlayer;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class LoginController {
@@ -2,8 +2,8 @@ package jforgame.demo.game.login.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.login.LoginDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
/**
* 请求-账号登录
@@ -2,8 +2,8 @@ package jforgame.demo.game.login.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.login.LoginDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.LOGIN, cmd=LoginDataPool.REQ_SELECT_PLAYER)
public class ReqSelectPlayer implements Message {
@@ -2,8 +2,8 @@ package jforgame.demo.game.login.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.login.LoginDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
import java.util.ArrayList;
import java.util.List;
@@ -18,7 +18,7 @@ import jforgame.demo.game.player.model.PlayerProfile;
import jforgame.demo.listener.EventDispatcher;
import jforgame.demo.listener.EventType;
import jforgame.demo.utils.IdGenerator;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -2,9 +2,9 @@ package jforgame.demo.game.player.controller;
import jforgame.demo.game.GameContext;
import jforgame.demo.game.player.message.ReqCreateNewPlayer;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class PlayerController {
@@ -2,8 +2,8 @@ package jforgame.demo.game.player.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.player.PlayerDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.PLAYER, cmd= PlayerDataPool.REQ_CREATE_PLAYER)
public class ReqCreateNewPlayer implements Message {
@@ -2,8 +2,8 @@ package jforgame.demo.game.player.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.player.PlayerDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.PLAYER, cmd= PlayerDataPool.RES_CREATE_PLAYER)
public class ResCreateNewPlayer implements Message {
@@ -2,8 +2,8 @@ package jforgame.demo.game.player.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.player.PlayerDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.PLAYER, cmd= PlayerDataPool.RES_KICK_PLAYER)
public class ResKickPlayer implements Message {
@@ -1,8 +1,8 @@
package jforgame.demo.game.scene.message;
import jforgame.demo.game.Modules;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.SCENE, cmd=1)
public class ResPlayerEnterScene implements Message {
@@ -1,8 +1,8 @@
package jforgame.demo.game.skill.facade;
import jforgame.demo.game.skill.message.ReqUseSkill;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class SkillController {
@@ -2,8 +2,8 @@ package jforgame.demo.game.skill.message;
import jforgame.demo.game.Modules;
import jforgame.demo.game.skill.SkillDataPool;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
@MessageMeta(module=Modules.SKILL, cmd=SkillDataPool.REQ_USE_SKILL)
public class ReqUseSkill implements Message {
@@ -2,8 +2,8 @@ package jforgame.demo.socket;
import jforgame.commons.util.ClassScanner;
import jforgame.demo.ServerScanPaths;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.MessageFactory;
import jforgame.socket.support.DefaultMessageFactory;
import java.util.Collection;
@@ -5,7 +5,7 @@ import jforgame.socket.client.SocketClient;
import jforgame.socket.mina.server.TcpSocketServerBuilder;
import jforgame.socket.netty.client.TcpSocketClient;
import jforgame.socket.server.ServerNode;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.net.HostAndPort;
/**
* 游戏服 socket 默认装配,屏蔽重复的 messageFactory / codec / dispatcher 组装逻辑。
@@ -2,14 +2,14 @@ package jforgame.demo.socket;
import jforgame.demo.game.GameContext;
import jforgame.demo.game.database.user.PlayerEnt;
import jforgame.socket.share.ChainedMessageDispatcher;
import jforgame.socket.share.CommonMessageHandlerRegister;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.MessageHandler;
import jforgame.socket.share.MessageHandlerRegister;
import jforgame.socket.share.PreprocessingMessageHandler;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.share.RequestScheduler;
import jforgame.socket.dispatch.ChainedMessageDispatcher;
import jforgame.socket.support.CommonMessageHandlerRegister;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.MessageHandler;
import jforgame.socket.registry.MessageHandlerRegister;
import jforgame.socket.dispatch.PreprocessingMessageHandler;
import jforgame.socket.protocol.message.MessageFactory;
import jforgame.socket.dispatch.RequestScheduler;
import jforgame.socket.support.RequestSchedulers;
import jforgame.threadmodel.dispatch.BaseDispatchTask;
@@ -1,7 +1,7 @@
package jforgame.demo.socket;
import jforgame.commons.util.NumberUtil;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -7,11 +7,11 @@ import jforgame.socket.client.CallbackTimeoutException;
import jforgame.socket.client.RpcMessageClient;
import jforgame.socket.client.SocketClient;
import jforgame.socket.mina.client.TcpSocketClient;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.SocketIoDispatcherAdapter;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.dispatch.SocketIoDispatcherAdapter;
import jforgame.socket.protocol.message.MessageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -4,10 +4,10 @@ import jforgame.commons.util.NumberUtil;
import jforgame.commons.util.TimeUtil;
import jforgame.demo.FireWall;
import jforgame.demo.ServerConfig;
import jforgame.socket.share.MessageHandler;
import jforgame.socket.dispatch.MessageHandler;
import jforgame.demo.socket.model.FloodRecord;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,9 +1,9 @@
package jforgame.demo.socket.filter;
import jforgame.commons.util.JsonUtil;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.MessageHandler;
import jforgame.socket.share.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.MessageHandler;
import jforgame.socket.dispatch.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -2,9 +2,9 @@ package jforgame.demo.socket.filter;
import jforgame.demo.socket.GameMessageFactory;
import jforgame.demo.socket.NetGateKeeper;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.MessageHandler;
import jforgame.socket.share.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.MessageHandler;
import jforgame.socket.dispatch.RequestContext;
/**
* 功能模块请求过滤器
@@ -4,8 +4,8 @@ import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import jforgame.commons.util.FileUtil;
import jforgame.socket.share.message.Message;
import jforgame.socket.share.message.Response;
import jforgame.socket.protocol.message.Message;
import jforgame.socket.protocol.message.Response;
import java.io.File;
import java.io.FileWriter;
@@ -7,8 +7,8 @@ import com.github.javaparser.ast.body.FieldDeclaration;
import jforgame.commons.util.ClassScanner;
import jforgame.commons.util.FileUtil;
import jforgame.demo.socket.GameMessageFactory;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.message.Message;
import java.io.File;
import java.io.IOException;
@@ -4,8 +4,8 @@ import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import jforgame.commons.util.FileUtil;
import jforgame.socket.share.message.Message;
import jforgame.socket.share.message.Response;
import jforgame.socket.protocol.message.Message;
import jforgame.socket.protocol.message.Response;
import java.io.File;
import java.io.FileWriter;
@@ -2,7 +2,7 @@ package jforgame.demo.tools.protocol.message;
import jforgame.commons.util.ClassScanner;
import jforgame.demo.ServerScanPaths;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.message.Message;
import java.util.stream.Collectors;
@@ -1,6 +1,6 @@
package jforgame.demo.tools.protocol.message;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.message.Message;
public class MessageMetadata implements Comparable<MessageMetadata> {
@@ -2,7 +2,7 @@ package jforgame.demo.tools.protocol.protobuf;
import com.baidu.bjf.remoting.protobuf.ProtobufIDLGenerator;
import jforgame.commons.util.ClassScanner;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.message.Message;
import java.io.BufferedWriter;
import java.io.FileWriter;
@@ -4,8 +4,8 @@ import jforgame.commons.util.JsonUtil;
import jforgame.demo.game.login.message.ReqAccountLogin;
import jforgame.demo.game.login.message.ReqSelectPlayer;
import jforgame.demo.game.player.message.ReqCreateNewPlayer;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.message.Message;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.message.Message;
/**
* 使用socket构建的机器人
@@ -11,11 +11,11 @@ import jforgame.socket.client.RequestCallback;
import jforgame.socket.client.RpcMessageClient;
import jforgame.socket.client.SocketClient;
import jforgame.socket.mina.client.TcpSocketClient;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.SocketIoDispatcherAdapter;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.dispatch.SocketIoDispatcherAdapter;
/**
* 客户端模拟器启动程序
@@ -1,9 +1,9 @@
package jforgame.demo.udp;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
@MessageRoute
public class LoginRouter {
@@ -2,13 +2,13 @@ package jforgame.demo.udp;
import jforgame.demo.socket.GameMessageFactory;
import jforgame.demo.socket.GameServer;
import jforgame.socket.share.ChainedMessageDispatcher;
import jforgame.socket.share.CommonMessageHandlerRegister;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.MessageHandler;
import jforgame.socket.share.MessageHandlerRegister;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.dispatch.ChainedMessageDispatcher;
import jforgame.socket.support.CommonMessageHandlerRegister;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.MessageHandler;
import jforgame.socket.registry.MessageHandlerRegister;
import jforgame.socket.protocol.message.MessageExecutor;
import jforgame.socket.protocol.message.MessageFactory;
import jforgame.socket.support.ClientRequestTask;
import java.util.Collections;
@@ -1,7 +1,7 @@
package jforgame.demo.udp;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
public class Player {
@@ -1,6 +1,6 @@
package jforgame.demo.udp;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
@MessageMeta(cmd = 55555)
public class ReqLogin extends UdpMessage {
@@ -1,6 +1,6 @@
package jforgame.demo.udp;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
@MessageMeta(cmd = 55556)
public class ResPlayerLogin extends UdpMessage {
@@ -1,6 +1,6 @@
package jforgame.demo.udp;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
@MessageMeta(cmd = 55557)
public class ResWelcome extends UdpMessage {
@@ -2,7 +2,7 @@ package jforgame.demo.udp;
import jforgame.commons.util.TimeUtil;
import jforgame.demo.game.core.SchedulerManager;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -6,10 +6,10 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import jforgame.socket.netty.ChannelUtils;
import jforgame.socket.netty.NSession;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.message.RequestDataFrame;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.protocol.message.RequestDataFrame;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,6 +1,6 @@
package jforgame.demo.udp;
import jforgame.socket.share.message.Message;
import jforgame.socket.protocol.message.Message;
public class UdpMessage implements Message {
@@ -5,9 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.socket.DatagramPacket;
import io.netty.handler.codec.MessageToMessageDecoder;
import jforgame.codec.MessageCodec;
import jforgame.socket.share.message.MessageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jforgame.socket.protocol.message.MessageFactory;
import java.util.List;
@@ -6,7 +6,7 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.socket.DatagramPacket;
import io.netty.handler.codec.MessageToMessageEncoder;
import jforgame.codec.MessageCodec;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.protocol.message.MessageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,12 +16,12 @@ import jforgame.commons.util.JsonUtil;
import jforgame.demo.socket.GameMessageFactory;
import jforgame.socket.client.AbstractSocketClient;
import jforgame.socket.netty.NSession;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.SocketIoDispatcherAdapter;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.dispatch.SocketIoDispatcherAdapter;
import jforgame.socket.protocol.message.MessageFactory;
import java.io.IOException;
import java.net.InetSocketAddress;
@@ -12,10 +12,10 @@ import io.netty.handler.logging.LoggingHandler;
import jforgame.codec.MessageCodec;
import jforgame.codec.struct.StructMessageCodec;
import jforgame.demo.socket.GameMessageFactory;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.server.ServerNode;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.protocol.message.MessageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,11 +1,11 @@
package jforgame.socket.client;
import jforgame.codec.MessageCodec;
import jforgame.socket.share.HostAndPort;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.SocketIoDispatcher;
import jforgame.socket.share.SocketIoDispatcherAdapter;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.net.HostAndPort;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.SocketIoDispatcher;
import jforgame.socket.dispatch.SocketIoDispatcherAdapter;
import jforgame.socket.protocol.message.MessageFactory;
/**
* 抽象的socket客户端
@@ -1,6 +1,6 @@
package jforgame.socket.client;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -1,6 +1,6 @@
package jforgame.socket.client;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
@@ -1,6 +1,6 @@
package jforgame.socket.client;
import jforgame.socket.share.IdSession;
import jforgame.socket.session.IdSession;
import java.io.IOException;
@@ -1,5 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,4 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
/**
* 消息处理接口,用于处理具体的消息
@@ -1,12 +1,15 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.protocol.annotation.RequestHandler;
import jforgame.socket.session.IdSession;
/**
* 消息参数转换器,用于将消息参数转换为被{@link jforgame.socket.share.annotation.RequestHandler}注解的方法的实参
* 消息参数转换器,用于将消息参数转换为被{@link RequestHandler}注解的方法的实参
*/
public interface MessageParameterConverter {
/**
* 将各种参数转为被{@link jforgame.socket.share.annotation.RequestHandler}注解的方法的实参
* 将各种参数转为被{@link RequestHandler}注解的方法的实参
*
* @param session 会话
* @param methodParams 方法参数
@@ -1,7 +1,9 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.session.IdSession;
import jforgame.socket.registry.MessageHandlerRegister;
import jforgame.socket.protocol.message.MessageExecutor;
import jforgame.socket.protocol.message.MessageFactory;
import jforgame.socket.support.DefaultMessageParameterConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,5 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
import jforgame.threadmodel.actor.Actor;
/**
@@ -1,7 +1,7 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.share.message.MessageHeader;
import jforgame.socket.protocol.message.MessageExecutor;
import jforgame.socket.protocol.message.MessageHeader;
/**
* 对于客户端的每一个请求,在生命周期内,都有一个供框架执行的上下文
@@ -1,4 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
/**
* 请求分发键解析器。
@@ -1,4 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
/**
* 请求调度器,用于将客户端请求消息投递到具体线程模型。
@@ -1,4 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
/**
* 消息分发器,服务器,客户端均适用
@@ -1,4 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.dispatch;
import jforgame.socket.session.IdSession;
/**
* 用于适配SocketIoDispatcher接口的默认实现
@@ -1,4 +1,4 @@
package jforgame.socket.share;
package jforgame.socket.monitoring;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -1,4 +1,4 @@
package jforgame.socket.share;
package jforgame.socket.net;
/**
* socket连接的主机与端口
@@ -1,4 +1,4 @@
package jforgame.socket.share;
package jforgame.socket.net;
/**
* 当使用WebSocket传输文本格式的消息时,定义一个消息帧类
@@ -1,4 +1,4 @@
package jforgame.socket.share.annotation;
package jforgame.socket.protocol.annotation;
import java.lang.annotation.Documented;
@@ -1,4 +1,4 @@
package jforgame.socket.share.annotation;
package jforgame.socket.protocol.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -1,4 +1,4 @@
package jforgame.socket.share.annotation;
package jforgame.socket.protocol.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -1,6 +1,6 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageMeta;
/**
* 通信消息基础接口
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
import java.lang.reflect.Method;
/**
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
import java.util.Collection;
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
/**
* 私有协议栈——消息包头定义
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
/**
* 解析过的私有协议栈包结构
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
/**
* 通用响应类
@@ -1,4 +1,4 @@
package jforgame.socket.share.message;
package jforgame.socket.protocol.message;
/**
* 套接字数据帧,用于标识客户端一个完整的消息包
@@ -1,6 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.registry;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.protocol.message.MessageExecutor;
/**
* 消息处理注册器,用于注册消息处理方法
@@ -1,6 +1,6 @@
package jforgame.socket.share;
package jforgame.socket.session;
import jforgame.socket.share.message.SocketDataFrame;
import jforgame.socket.protocol.message.SocketDataFrame;
import java.io.Closeable;
import java.io.IOException;
@@ -1,9 +1,9 @@
package jforgame.socket.support;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestActorSelector;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.RequestScheduler;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestActorSelector;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.dispatch.RequestScheduler;
import jforgame.threadmodel.actor.Actor;
/**
@@ -2,8 +2,8 @@ package jforgame.socket.support;
import jforgame.commons.reflection.MethodCaller;
import jforgame.commons.reflection.MethodHandleUtils;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1,10 +1,8 @@
package jforgame.socket.support;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.threadmodel.actor.mail.Mail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 若线程模型采用{@link jforgame.threadmodel.actor.ActorSystem}
@@ -12,9 +10,6 @@ import org.slf4j.LoggerFactory;
*/
public class ClientRequestMail extends Mail {
private static final Logger logger = LoggerFactory.getLogger(ClientRequestMail.class);
private IdSession session;
private RequestContext requestContext;
@@ -1,7 +1,7 @@
package jforgame.socket.support;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import jforgame.threadmodel.dispatch.BaseDispatchTask;
/**
@@ -22,7 +22,6 @@ public class ClientRequestTask extends BaseDispatchTask {
return task;
}
@Override
public void action() {
ClientRequestExecutor.execute(session, requestContext);
@@ -1,13 +1,11 @@
package jforgame.socket.share;
package jforgame.socket.support;
import jforgame.commons.util.ClassScanner;
import jforgame.socket.share.annotation.MessageMeta;
import jforgame.socket.share.annotation.MessageRoute;
import jforgame.socket.share.annotation.RequestHandler;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.support.DefaultMessageHandlerRegister;
import jforgame.socket.support.MessageExecuteUnit;
import jforgame.socket.protocol.annotation.MessageMeta;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
import jforgame.socket.protocol.message.MessageExecutor;
import jforgame.socket.protocol.message.MessageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,7 +55,7 @@ public class CommonMessageHandlerRegister extends DefaultMessageHandlerRegister
if (cmdExecutor != null) {
throw new RuntimeException(String.format("cmd[%d] duplicated", cmd));
}
cmdExecutor = MessageExecuteUnit.valueOf(method, method.getParameterTypes(), route);
cmdExecutor = MessageHandlerMethod.valueOf(method, method.getParameterTypes(), route);
register(cmd, cmdExecutor);
});
}
@@ -1,6 +1,6 @@
package jforgame.socket.support;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.protocol.message.MessageFactory;
import java.util.Collection;
import java.util.HashSet;
@@ -1,7 +1,7 @@
package jforgame.socket.support;
import jforgame.socket.share.MessageHandlerRegister;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.registry.MessageHandlerRegister;
import jforgame.socket.protocol.message.MessageExecutor;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -1,6 +1,6 @@
package jforgame.socket.support;
import jforgame.socket.share.message.MessageHeader;
import jforgame.socket.protocol.message.MessageHeader;
import java.nio.ByteBuffer;
@@ -1,9 +1,9 @@
package jforgame.socket.support;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.MessageParameterConverter;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.message.MessageFactory;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.MessageParameterConverter;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.protocol.message.MessageFactory;
/**
* 默认的消息参数转换器
@@ -1,9 +1,9 @@
package jforgame.socket.support;
import jforgame.socket.share.IdSession;
import jforgame.socket.share.RequestContext;
import jforgame.socket.share.RequestDispatchKeyResolver;
import jforgame.socket.share.RequestScheduler;
import jforgame.socket.session.IdSession;
import jforgame.socket.dispatch.RequestContext;
import jforgame.socket.dispatch.RequestDispatchKeyResolver;
import jforgame.socket.dispatch.RequestScheduler;
import jforgame.threadmodel.dispatch.DispatchThreadModel;
/**
@@ -1,17 +1,19 @@
package jforgame.socket.support;
import jforgame.socket.share.message.MessageExecutor;
import jforgame.socket.protocol.annotation.MessageRoute;
import jforgame.socket.protocol.annotation.RequestHandler;
import jforgame.socket.protocol.message.MessageExecutor;
import java.lang.reflect.Method;
/**
* 默认的消息执行单元
* 默认的消息执行器
*/
public class MessageExecuteUnit implements MessageExecutor {
public class MessageHandlerMethod implements MessageExecutor {
/**
* 对应消息路由的指定方法 {@link jforgame.socket.share.annotation.RequestHandler}
* @see jforgame.socket.share.annotation.MessageRoute
* 对应消息路由的指定方法 {@link RequestHandler}
* @see MessageRoute
*/
private Method method;
/**
@@ -20,12 +22,12 @@ public class MessageExecuteUnit implements MessageExecutor {
private Class<?>[] params;
/**
* 对应消息路由对象
* @see jforgame.socket.share.annotation.MessageRoute
* @see MessageRoute
*/
private Object handler;
public static MessageExecuteUnit valueOf(Method method, Class<?>[] params, Object handler) {
MessageExecuteUnit executor = new MessageExecuteUnit();
public static MessageHandlerMethod valueOf(Method method, Class<?>[] params, Object handler) {
MessageHandlerMethod executor = new MessageHandlerMethod();
executor.method = method;
executor.params = params;
executor.handler = handler;
@@ -1,8 +1,8 @@
package jforgame.socket.support;
import jforgame.socket.share.RequestActorSelector;
import jforgame.socket.share.RequestDispatchKeyResolver;
import jforgame.socket.share.RequestScheduler;
import jforgame.socket.dispatch.RequestActorSelector;
import jforgame.socket.dispatch.RequestDispatchKeyResolver;
import jforgame.socket.dispatch.RequestScheduler;
import jforgame.threadmodel.actor.ActorSystem;
import jforgame.threadmodel.dispatch.DispatchThreadModel;
@@ -1,6 +1,6 @@
package jforgame.socket.support;
import jforgame.socket.share.RequestDispatchKeyResolver;
import jforgame.socket.dispatch.RequestDispatchKeyResolver;
import jforgame.threadmodel.actor.ActorSystem;
/**

Some files were not shown because too many files have changed in this diff Show More