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?
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:
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:)