Longa pesquisa Netty Nio Framework Java
-
21-09-2019 - |
Pergunta
Como posso fazer a polpa longa usando Netty estrutura? Diga por exemplo, eu pego http://localhost/waitforx
mas waitforx
é assíncrono porque tem que esperar por um evento? Diga, por exemplo, ele busca algo de uma fila de bloqueio (só pode buscar dados quando os dados na fila). Ao obter o item da fila, gostaria de enviar os dados de volta ao cliente. Espero que alguém possa me dar algumas dicas de como fazer isso.
Muito Obrigado
Solução
Você pode escrever um cabeçalho de resposta primeiro e depois enviar o corpo (conteúdo) posteriormente a partir de outro thread.
void messageReceived(...) {
HttpResponse res = new DefaultHttpResponse(...);
res.setHeader(...);
...
channel.write(res);
}
// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
Outras dicas
Você pode usar Netty-Socketio projeto. É implementação de Socket.io servidor com suporte de pesquisa longa. No lado da web, você pode usar Socket.io Client JavaScript Lib.
Você também pode fazer o seguinte em [sfnrpc]: http://code.google.com/p/sfnrpc
Object object = RPCClient.getInstance().invoke("#URN1","127.0.0.1:6878","echo",true,60,"", objArr,classArr, sl);
As verdadeiras causas a comunicação são síncronas.