polling lungo Netty java quadro nio
-
21-09-2019 - |
Domanda
Come posso fare a lungo polling utilizzando Netty quadro? Diciamo per esempio prelevo http://localhost/waitforx
ma waitforx
è asincrona perché deve aspettare per un evento? Dire per esempio si va a prendere qualcosa da una coda di blocco (può recuperare solo quando i dati in coda). Quando si ottiene elemento dalla coda Vorrei inviare dati al client. Speriamo che qualcuno mi può dare qualche consiglio su come fare questo.
Grazie
Soluzione
Si potrebbe scrivere un'intestazione di risposta prima, e poi inviare il corpo (contenuto) seguito da un altro thread.
void messageReceived(...) {
HttpResponse res = new DefaultHttpResponse(...);
res.setHeader(...);
...
channel.write(res);
}
// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
Altri suggerimenti
È possibile utilizzare Netty-socketio progetto. E 'implementazione di Socket.IO server con il supporto di polling lungo. Sul lato web è possibile utilizzare Socket.IO cliente javascript lib.
Si potrebbe anche fare quanto segue in [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 vera comunicazione cause sia sincrono.