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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top