Suite à la question Does OkHttp support HTTP/2 server push?, existe-t-il des exemples disponibles sur la façon dont la réception de contenu poussé du côté client pourrait être implémentée?Comment mettre en œuvre la réception d'un serveur push dans OkHttp?
Comment l'interaction de OkHttpClient, Request, Response et Http2Connection sera? Je comprends que le Http2Connection a un PushObserver, mais comment jouera-t-il avec OkHttpClient et Request/Response?
Considérons l'extrait ci-dessous. Il y a un client et une demande. Comment vont-ils venir avec le 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);
}
Cela répond à ma question, merci! – Erunafailaro
OkHttp 3.5.0 prend désormais officiellement en charge WebSocket. Voir l'exemple: http://howtoprogram.xyz/2016/12/24/websocket-client-example-okhttp/ – NangSaigon