Frage

Wie kann ich lange Polling netty Rahmen? Nehmen wir zum Beispiel hole ich http://localhost/waitforx

aber waitforx ist asynchron, weil es für ein Ereignis warten muss? Nehmen wir zum Beispiel es etwas von einer blockierenden Warteschlange holt (holen kann nur, wenn Daten in der Warteschlange). Wenn aus der Warteschlange bekommen Punkt möchte ich abgeschickt Daten zurück an den Client mögen. Hoffentlich kann jemand geben Sie mir ein paar Tipps, wie dies zu tun.

Vielen Dank

War es hilfreich?

Lösung

Sie können eine Antwort-Header zuerst schreiben und dann den Körper senden (Inhalt), die später von anderen Thread.

void messageReceived(...) {
    HttpResponse res = new DefaultHttpResponse(...);
    res.setHeader(...);
    ...
    channel.write(res);
}

// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);

Andere Tipps

Sie können mit netty-socketio Projekt. Es Implementierung von Socket.IO Server mit langer Abfrage Unterstützung. Auf Web-Seite können Sie mit Socket.IO Client Javascript lib.

Sie können auch die folgende tun 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);

Die Kommunikation wahre Ursachen synchron sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top