现在MsgType
不足以容纳我需求中新的消息类型, 我是在MsgType
中继续放数据, 还是再搞一个服务呢? 工程实践中一般采用什么方案捏?
public final class GameServerHanler 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 ![]() 通信层和业务逻辑解藕,只做收发,消息类型只有一种,不同类型交给业务逻辑去做 |
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 代码,收发跟业务处理分离开来 |