質問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