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

在netty中是否可以在同一个tcp连接中获得多个请求?

在netty中是否可以在同一个tcp连接中获得多个请求?

largeQ 2022-03-10 21:41:32
在 netty 中,是否可以在第一个请求正在进行时从同一个 tcp 客户端接收第二个请求。以下是我尝试过的示例代码:public class SomethingServerHandler extends SimpleChannelInboundHandler<Object> {    protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {    String stringMessage = (String) msg;    if (log.isDebugEnabled()) {        log.debug(stringMessage);    }    ctx.fireChannelRead(msg);    String[] splitMessage = stringMessage.split("::");    try {        Thread.sleep(10000);    } catch (InterruptedException e) {        e.printStackTrace();    }    if ( splitMessage.length != 2 ) {        ctx.channel().writeAndFlush(stringMessage + "\n\r");        return;    }    if ( channelRepository.get(splitMessage[0]) != null ) {        channelRepository.get(splitMessage[0]).writeAndFlush(splitMessage[1] + "\n\r");    }       }从命令行:telnet localhost 端口字符串1字符串2在服务器端 string2 在 string1 处理完成后 10 秒后打印。无论如何我可以并行处理string2吗?提前感谢您的帮助。
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

仅当您将工作卸载到另一个线程时。您正在阻塞,EventLoop这意味着它的线程上不会发生其他工作。这不仅会影响此连接,还会影响由相同处理的所有其他连接EventLoop


查看完整回答
反对 回复 2022-03-10
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

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