我正在开发基于netty version 4的分析系统和基于tomcat的web客户端应用程序。如何通过HTTP请求在HTML页面中显示异步结果?
网络应用程序接受用户的输入,然后将其发送到分析机。最后在HTML页面中打印响应。
这是在发送用户输入到分析节点的servlet代码:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String input = request.getParameter("input");
Channel ch = pool.borrowObject();
Protocol.Builder builder = Protocol.newBuilder().setInput(input);
ch.writeAndFlush(builder.build());
}
Netty的以异步方式工作,所以HTTP请求发送之后结束。
这是代码响应处理:
@Override
protected void channelRead0(ChannelHandlerContext ctx, Protocol response)
throws Exception {
pool.returnObject(ctx.channel());
//How could I code here to display response to the HTML page that user requested?
}
我一直在这里奋斗了几个星期。我试图使用公共的安全队列来使http请求在那里等待,直到从队列中获得响应。但是这使得整个请求变得同步。
任何人都可以告诉如何做到这一点?非常感谢!
Twitter的欺骗是包装为网状,这是否(及以上)。大部分编写finagle客户端的例子都在scala中,但我知道它也可以用于java。您可以从这里开始:https://blog.twitter.com/2011/finagle-protocol-agnostic-rpc-system – eSniff
谢谢。我会看看。 – Michael
@ norman-maurer如果你有时间,你可以看看这个吗?非常感激。 – Michael