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);
真正的原因是沟通是同步的。