现在MsgType
不足以容纳我需求中新的消息类型, 我是在MsgType
中继续放数据, 还是再搞一个服务呢? 工程实践中一般采用什么方案捏?
public final class GameServerHandler extends SimpleChannelInboundHandler<MsgType> {
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, MsgType s)
MsgType
里继续耕耘! 1
araaaa 2021-03-23 19:56:01 +08:00 via iPhone
json 或者 pb
|
2
iuh 2021-03-23 20:00:57 +08:00
用新的 handler 接受处理,加入流水线
|
3
narutow OP @iuh Handler 之间不应该是强相关的吗, 只有一个流水线, handler 都挂在流水线里, 消息处理存在顺序. A-> B -> C, C 只能接受 B 解完包的数据
|
4
sagaxu 2021-03-23 20:14:41 +08:00 via Android 3
通信层和业务逻辑解藕,只做收发,消息类型只有一种,不同类型交给业务逻辑去做
|
5
tookbra 2021-03-23 20:39:07 +08:00
再 handler 前加个 codec 解码、编码,对应的事件转发到对应的 codec 中处理
|
6
jianglai 2021-03-23 21:10:14 +08:00 via iPhone
@narutow 如果一个 handler 不能处理某种 message type 就直接 pass 到 pipeline 里面的下一个去,不会被 swallow 的。
|
7
securityCoding 2021-03-24 09:41:49 +08:00 via Android
参考一下 rocketmq 的 netty 代码,收发跟业务处理分离开来
|