long polling netty nio framework java

如何使用netty框架进行长轮询? 比方说,我获取http://localhost/waitforx

waitforx是异步的,因为它必须等待事件? 比方说,它从阻塞队列中获取内容(只能在队列中的数据时获取)。 从队列中获取项目时,我想将数据发送回客户端。 希望有人可以给我一些提示如何做到这一点。

非常感谢

您可以先写一个响应头,然后稍后从其他线程发送正文(内容)。

 void messageReceived(...) { HttpResponse res = new DefaultHttpResponse(...); res.setHeader(...); ... channel.write(res); } // In a different thread.. ChannelBuffer partialContent = ...; channel.write(partialContent); 

您可以使用netty-socketio项目。 它是Socket.IO服务器的实现,具有长轮询支持。 在Web端,您可以使用Socket.IO客户端 javascript lib。

您还可以在[sfnrpc]中执行以下操作: http : //code.google.com/p/sfnrpc

 Object object = RPCClient.getInstance().invoke("#URN1","127.0.0.1:6878","echo",true,60,"", objArr,classArr, sl); 

真正的原因是沟通是同步的。