diff --git a/src/main/java/com/codebutler/android_websockets/HybiParser.java b/src/main/java/com/codebutler/android_websockets/HybiParser.java index 31656f7..90a4f0c 100644 --- a/src/main/java/com/codebutler/android_websockets/HybiParser.java +++ b/src/main/java/com/codebutler/android_websockets/HybiParser.java @@ -241,7 +241,7 @@ private byte[] frame(Object data, int opcode, int errorCode) { } public void ping(String message) { - mClient.send(frame(message, OP_PING, -1)); + mClient.sendFrame(frame(message, OP_PING, -1)); } public void close(int code, String reason) { diff --git a/src/main/java/com/codebutler/android_websockets/WebSocketClient.java b/src/main/java/com/codebutler/android_websockets/WebSocketClient.java index d5e1b73..342d379 100644 --- a/src/main/java/com/codebutler/android_websockets/WebSocketClient.java +++ b/src/main/java/com/codebutler/android_websockets/WebSocketClient.java @@ -72,7 +72,7 @@ public void run() { try { String secret = createSecret(); - int port = (mURI.getPort() != -1) ? mURI.getPort() : (mURI.getScheme().equals("wss") ? 443 : 80); + int port = (mURI.getPort() != -1) ? mURI.getPort() : ((mURI.getScheme().equals("wss") || mURI.getScheme().equals("https")) ? 443 : 80); String path = TextUtils.isEmpty(mURI.getPath()) ? "/" : mURI.getPath(); if (!TextUtils.isEmpty(mURI.getQuery())) { @@ -82,7 +82,7 @@ public void run() { String originScheme = mURI.getScheme().equals("wss") ? "https" : "http"; URI origin = new URI(originScheme, "//" + mURI.getHost(), null); - SocketFactory factory = mURI.getScheme().equals("wss") ? getSSLSocketFactory() : SocketFactory.getDefault(); + SocketFactory factory = (mURI.getScheme().equals("wss") || mURI.getScheme().equals("https")) ? getSSLSocketFactory() : SocketFactory.getDefault(); mSocket = factory.createSocket(mURI.getHost(), port); PrintWriter out = new PrintWriter(mSocket.getOutputStream()); @@ -160,12 +160,14 @@ public void disconnect() { mHandler.post(new Runnable() { @Override public void run() { - try { - mSocket.close(); + if (mSocket != null) { + try { + mSocket.close(); + } catch (IOException ex) { + Log.d(TAG, "Error while disconnecting", ex); + mListener.onError(ex); + } mSocket = null; - } catch (IOException ex) { - Log.d(TAG, "Error while disconnecting", ex); - mListener.onError(ex); } } });