OkHttp kullanarak bir Server-Sent Events kitaplığı uyguluyorum. Sunucu Gönderilen Olaylar, 'olayların' istemciye geri aktarılabileceği sunucuya açık bir HTTP bağlantısı tutarak çalışır. Bağlantı sadece hataları kapatır veya istemci açıkça bağlantıyı keserse.Streaming okhttp yanıt kütlesi
Bu akış davranışını OkHttp kullanarak elde etmenin en iyi yolu nedir? Sonunda write()
günlük mesajı göreceksiniz Bu yaklaşımla
response.body().source().readAll(new Sink() {
@Override
public void write(Buffer source, long byteCount) throws IOException {
Log.d(TAG, "write(): byteCount = "+byteCount);
}
@Override
public void flush() throws IOException {
Log.d(TAG, "flush()");
}
@Override
public Timeout timeout() {
return Timeout.NONE;
}
@Override
public void close() throws IOException {
Log.d(TAG, "close()");
}
});
, ancak bazen uzunca bir süre (dakika) alabilir: Ben böyle bir şey yapmak teşebbüs ettik. Bu bana kaputun altında bir miktar tamponlama olabileceğini düşünüyor ve arabamı temizleyene kadar veriyi alamıyorum.
Sunucunun doğru çalıştığını doğrulamak için curl
kullanıyorum. numaralı veri zamanında gönderilmekte olup, geri geldiğinde geri çağırmadım.
OkHttp
ve Okio
ile olan deneyimim çok sınırlıdır, bu yüzden bir şeyleri karıştırdım ya da bir seçenek belirlemeyi unutmuşum. Herhangi bir yardım büyük beğeni topluyor! 0
Bu kitaplık bir yerde mevcut mu? :) – wblaschko