Следуя задаче Does OkHttp support HTTP/2 server push?, существуют ли какие-либо примеры того, как можно реализовать прием нажатого контента на стороне клиента?Как реализовать прием сервера в OkHttp?
Как будет взаимодействовать 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);
}
Это отвечает на мой вопрос, спасибо! – Erunafailaro
OkHttp 3.5.0 теперь официально поддерживает WebSocket. См. Пример: http://howtoprogram.xyz/2016/12/24/websocket-client-example-okhttp/ – NangSaigon