对外服对某个路由实现拦截
molin7596 opened this issue · comments
如果我想在对外服对某个路由实现拦截 进行一些处理, 再根据处理结果 是否放行,框架是否自带? 需要自定义扩展吗
过滤器 and 拦截器
自定义扩展:我这种做法 对吗 ?
/**
* 路由拦截器
*/
@ChannelHandler.Sharable
public class CmdInterceptorHandler extends SimpleChannelInboundHandler<BarMessage> {
@Override
protected void channelRead0(ChannelHandlerContext ctx, BarMessage message) {
int cmdMerge = message.getHeadMetadata().getCmdMerge();
CmdInfo cmdInfo = CmdInfo.of(cmdMerge);
// todo
ctx.writeAndFlush(message);
}
public CmdInterceptorHandler() {
}
public static CmdInterceptorHandler me() {
return CmdInterceptorHandler.Holder.ME;
}
/**
* 通过 JVM 的类加载机制, 保证只加载一次 (singleton)
*/
private static class Holder {
static final CmdInterceptorHandler ME = new CmdInterceptorHandler();
}
}
没问题,在游戏对外服 (yuque.com)中扩展一些自定义的 Netty Handler。
同时,框架也提供了很多内置与可选的 Handler (yuque.com),可以适当的参考,如下
框架后续迭代中会提供此类功能吗
暂时没这个计划,因为 netty handler 已经具备拦截功能了。