Android Retrofit 2 + RxJava: höre endlosen Stream

8

Kann ich mit Retrofit + RxJava einen endlosen Stream hören? Zum Beispiel der Twitter-Stream. Was ich habe ist das:

%Vor%

aber die "onComplete" wird aufgerufen, nachdem das erste Objekt analysiert wurde. Gibt es eine Möglichkeit, Retrofit zu sagen, dass es bis auf weiteres geöffnet bleibt?

    
ticofab 13.04.2016, 15:41
quelle

1 Antwort

10

Hier meine Lösung:

Sie können die @Streaming-Annotation verwenden:

%Vor%

Mit @Streaming können wir eine rohe Eingabe von ResponseBody erhalten.

Hier meine Funktion zum Umbrechen von Körper geteilt durch Linien mit Ereignissen:

%Vor%

Und Ergebnisverwendung:

%Vor%

upd zum Anhalten

Wenn wir uns abmelden, schließt Retrofit den Eingangsstrom. Aber unmöglich zu erkennen Eingangsstrom geschlossen oder nicht von Eingangsstrom selbst, also nur Weg - versuchen Sie, aus Stream zu lesen - wir erhalten Ausnahme mit Socket closed Nachricht. Wir können diese Ausnahme als Schließen interpretieren:

%Vor%

Und wenn die Verbindung geschlossen wurde, weil die Antwort endet, haben wir keine Ausnahmen. Hier überprüfen isCompleted das. Lass es mich wissen, wenn ich falsch liege:)

    
zella 15.04.2016, 09:30
quelle