После вопроса Поддерживает ли OkHttp поддерживает сервер HTTP/2 push?, есть ли какие-либо примеры того, как можно реализовать получение отправленного контента на стороне клиента?
Как будет происходить взаимодействие OkHttpClient, Request, Response и Http2Connection? Я понимаю, что у Http2Connection есть PushObserver, но как он будет работать вместе с OkHttpClient и Request/Response?
Рассмотрим фрагмент ниже. Есть клиент и запрос. Как они будут работать вместе с PushObserver?
OkHttpClient client = getOkHttpClient();
Request request = new Request.Builder()
.url("https://nghttp2.org:443") // The Http2Server should be running here.
.build();
try {
Socket socket = client.socketFactory().createSocket();
Http2Connection con = new Http2Connection.Builder(true)
.socket(socket)
.pushObserver(new PushObserver(){
@Override
public boolean onRequest(int streamId, List<Header> requestHeaders) {
// do something here
return true;
}
@Override
public boolean onHeaders(int streamId,
List<Header> responseHeaders, boolean last) {
// do something here
return true;
}
@Override
public boolean onData(int streamId, BufferedSource source,
int byteCount, boolean last) throws IOException {
// do something here
return true;
}
@Override
public void onReset(int streamId, ErrorCode errorCode) {
// do something
}
}).build();
} catch (IOException e) {
LOG.error("IOException", e);
}