à long Netty de vote cadre nio java
-
21-09-2019 - |
Question
Comment puis-je faire à long interrogation à l'aide Netty cadre? Disons, par exemple, je vais chercher http://localhost/waitforx
mais waitforx
est asynchrone, car il doit attendre un événement? Disons, par exemple, il va chercher quelque chose à partir d'une file d'attente de blocage (ne peut récupérer lorsque les données en file d'attente). Lors de l'obtention élément de file d'attente, je voudrais envoyer les données au client. Espérons que quelqu'un peut me donner quelques conseils comment faire cela.
Merci
La solution
Vous pouvez écrire un en-tête de réponse d'abord, puis envoyer le corps (contenu) plus tard, d'autres fils.
void messageReceived(...) {
HttpResponse res = new DefaultHttpResponse(...);
res.setHeader(...);
...
channel.write(res);
}
// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
Autres conseils
Vous pouvez utiliser Netty-socketio projet. Il est la mise en œuvre du serveur Socket.IO avec soutien de longue interrogation. Côté web, vous pouvez utiliser le client Socket.IO javascript lib.
Vous pouvez également effectuer les opérations suivantes dans [sfnrpc]: http://code.google.com/p / sfnrpc
Object object = RPCClient.getInstance().invoke("#URN1","127.0.0.1:6878","echo",true,60,"", objArr,classArr, sl);
La communication vraie causes pour être synchrone.