长轮询网状NIO框架的Java
-
21-09-2019 - |
题
我能如何使用网状框架长轮询?说,例如我取http://localhost/waitforx
但waitforx
是异步的,因为它必须等待一个事件?说,例如它提取东西从阻塞队列(只能取时在队列中的数据)。当正从队列项我想发送的数据返回到客户端。希望有人可以给我一些提示如何做到这一点。
非常感谢
解决方案
您可以先写一个响应报头,然后再从其他线程发送所述主体(内容)后。
void messageReceived(...) {
HttpResponse res = new DefaultHttpResponse(...);
res.setHeader(...);
...
channel.write(res);
}
// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
其他提示
您可以使用网状-socketio 项目。它的实现 Socket.IO 服务器与长轮询支持。在网络方面,你可以使用 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);
的真正原因的通信是同步的。
不隶属于 StackOverflow