private void onOpen() { for (int x = sent; x < requestCounter; x++) { WebSocketRequest request = requests.get(x + 1); send(requestCounter + ":" + request.getRequest()); sent++; } isConnected = true; }
private void onClose() { for (WebSocketRequest request : requests.values()) { request.getCallback().onError(request, new IOException("Connection lost")); } requests.clear(); requestCounter = 0; sent = 0; // reconnect again try { this.jsWebSocket = createJSWebSocket(url, this); } catch (Exception e) { } }
/** @param message */ private void onMessage(String message) { int index = message.indexOf(':'); try { int id = Integer.parseInt(message.substring(0, index)); message = message.substring(index + 1); WebSocketRequest request = requests.get(id); if (request != null) { requests.remove(id); WebSocketResponse respone = new WebSocketResponse(message); processCookies(respone); request.getCallback().onResponseReceived(request, respone); } } catch (NumberFormatException e) { } }
public void send(WebSocketRequest wsr) { requestCounter++; requests.put(requestCounter, wsr); if (isConnected) { String request = wsr.getRequest(); while (request.length() > MAX_MESSAGE) { String substring = request.substring(0, MAX_MESSAGE); substring += MESSAGE_END; send(requestCounter + ":" + substring); request = request.substring(MAX_MESSAGE); } send(requestCounter + ":" + request); sent++; } }