【发布时间】:2021-12-17 04:25:40
【问题描述】:
我们有一个使用NioServerSocketChannel 和HttpServerCodec 的Netty 服务器。我们观察到一个错误的客户端在同一个 TCP 连接(同一个 Channel 和 ChannelPipeline)上发送多个请求而不等待响应。可以使用 Netty 客户端重新创建这个坏客户端,并在最后使用 ctx.flush() 执行多个 ctx.write()s 以一次发送所有请求。
结果是 Netty 在同一管道中同时处理请求。有没有办法让 Netty 一次处理一个请求,在尝试处理下一个请求之前等待发回的响应或某些失败条件?或者这需要我们端的自定义逻辑来实现吗?
我们为每个请求设置了 Channel 属性,并且管道也会根据请求而变化,因此我们无法在同一个 Channel 上同时处理多个请求。
【问题讨论】:
标签: netty