为了账号安全,请及时绑定邮箱和手机立即绑定

有没有比在处理程序中实现方法更好的方法从 Netty 调用方法?

有没有比在处理程序中实现方法更好的方法从 Netty 调用方法?

慕桂英546537 2023-07-19 15:33:13
这是一个简单的问题。Netty 似乎是在服务器和客户端之间发送信息的一个很好的工具。我想发送信息,还有事件……或者更确切地说,称为做什么的指令。public class PojoServerHandler extends ChannelInboundHandlerAdapter {    private Logger logger = LoggerFactory.getLogger(getClass());    @Override    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {        Message body = (Message) msg;        logger.info("server read msg id:{}, body:{}", body.getId(), body.getBody());        Message response = new Message();        response.setId(1024);        response.setFrom("server");        response.setBody("hello from server");        ctx.writeAndFlush(response);    }    @Override    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {        logger.error("server caught exception", cause);        ctx.close();    }}我这里有这段代码,它描述了服务器的处理程序。当客户端向服务器发送消息时。该方法channelRead将被直接调用。如果我想在我的应用程序中使用其他功能,那么实现switch caseinside是否明智,或者 Netty 可以通过其他方式做到这一点?channelRead
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

可以有多个处理程序,每个处理程序执行不同的任务,而不是使用 switch case。您只需致电

ctx.fireChannelRead(msg);

如果您打算不在特定处理程序中处理消息,那么它将触发管道中的下一个处理程序。


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信