질문 후 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