I am trying to establish a websocket connection on my server. Where do I place the code to connect, reconnect if connection closed, etc, in my Android app so that if the app is closed the websocket connection will still work?
public class EchoWebSocketListener extends WebSocketListener {
@Override
public void onOpen(WebSocket webSocket, okhttp3.Response response) {
Log.d(TAG, "onOpen: Opened: " + response.toString());
}
@Override
public void onMessage(WebSocket webSocket, String text) {
Log.d(TAG, "onMessage: Recieved: " + text);
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
Log.d(TAG, "onClosing: onClosing");
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
Log.d(TAG, "onClosed: Closed: ");
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, okhttp3.Response response) {
Log.d(TAG, "onFailure: Failure" + t);
//createNewWebsocketConnection();
}
}
private void createNewWebsocketConnection(){
if(mUserId != null){
EchoWebSocketListener listener = new EchoWebSocketListener();
Request request = new Request.Builder()
.url(MAIN_WS_URL)
.addHeader("user_id_connection", mUserId)
.build();
OkHttpClient client = new OkHttpClient
.Builder()
.pingInterval(30, TimeUnit.SECONDS)
.build();
ws = client.newWebSocket(request, listener);
}
}