1
OkHttp 3.5에 웹 소켓이 포함되어 있으므로 사용하고 싶습니다. 하지만 난 하나의 문제가, 만약 내가 평균 30minuts, 소켓 연결을 해제 응용 프로그램을 사용하지 마십시오. 왜, 어떻게 "영원한"연결을 할 수 있습니까? 그리고 두 번째 qestion, 어떻게 소켓 연결을 확인할 수 있습니까?OkHttp 3.5 webSocket이 연결을 유지하지 않습니다
Singlton 클래스
public class ServerSocket {
@Singleton
public OkHttpClient getOkHttpClient(){
return new OkHttpClient();
}
@Singleton
public Request getRequest(){
return new Request.Builder()
.url(Link.url_socket)
.build();
}
}
내 연결 클래스 : 그것은 okhttp에서 버그
OkHttpClient client = serverSocket.getOkHttpClient();
Request request = serverSocket.getRequest();
WebSocketListener webSocketListener = new WebSocketListener() {
@Override
public void onOpen(WebSocket webSocket, Response response) {
super.onOpen(webSocket, response);
Log.e("connect socket", "connect socket");
}
@Override
public void onMessage(WebSocket webSocket, String text) {
super.onMessage(webSocket, text);
Log.e("onMessage", text);
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
super.onMessage(webSocket, bytes);
Log.e("onMessage", "onMessage");
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
super.onClosing(webSocket, code, reason);
Log.e("onClosing", "onClosing");
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
super.onClosed(webSocket, code, reason);
Log.e("onClosed", "onClosed");
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
super.onFailure(webSocket, t, response);
Log.e("onFailure", "onFailure");
}
};
socket = client.newWebSocket(request, webSocketListener);