java - 如何从 Netty 向客户端发送多个响应

标签 java netty tcp

我想根据后端进程向客户端发送多个响应。但在 Netty 示例中,我看到 echo 服务器同时发回响应。

我的要求是,我需要验证客户端并向他发送 OK 响应,然后在可用时向他发送 DB 更新。

如何向客户端发送更多响应?请指导我查看示例或任何指南?

最佳答案

在管道中的每个点,您都可以获得管道 Channel来自 MessageEvent 的对象对象(或 ChannelEvent )从处理程序传递到处理程序。您可以使用此信息在管道中的不同点发送多个响应。

如果我们以回显服务器示例为基础,我们可以添加一个再次发送回显的处理程序(也可以在同一个处理程序中完成,但该示例是为了表明多个处理程序可以响应)。

    public class EchoServerHandler extends ChannelHandlerAdapter {

        public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
           Channel ch = e.getChannel();
           // first message
           ch.write(e.getMessage());
        }
        // ...
    }

    public class EchoServerHandler2 extends ChannelHandlerAdapter {

           public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
           Channel ch = e.getChannel();
           // send second message     
           ch.write(e.getMessage());
        }
        // ...
    }

关于java - 如何从 Netty 向客户端发送多个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273887/

相关文章:

java - 在 libgdx 中渲染 Box2D 链形状

java - 按 Lucene 词典中的用法对建议的单词进行排序

java - Netty SystemD延迟初始化

c++ - TCP 缓冲区解析器

java - 替换同一选项卡中的 fragment

java - 当您更改方法内的引用时会发生什么? (7)

java - 使用netty高速发送消息时出现OOM异常

java - 如何跟踪netty服务器中打开连接的确切数量

objective-c - 如何判断远程网络设备是否可用?

tcp - 如何获取连接到基于 Rebol3 的服务器的客户端的远程 IP 地址?