diff --git a/libs/Java-WebSocket-1.3.7.jar b/libs/Java-WebSocket-1.3.7.jar new file mode 100644 index 00000000..7210beed Binary files /dev/null and b/libs/Java-WebSocket-1.3.7.jar differ diff --git a/libs/java-websocket-patch.jar b/libs/java-websocket-patch.jar deleted file mode 100644 index 22cda9f4..00000000 Binary files a/libs/java-websocket-patch.jar and /dev/null differ diff --git a/src/com/connectsdk/service/webos/WebOSTVMouseSocketConnection.java b/src/com/connectsdk/service/webos/WebOSTVMouseSocketConnection.java index d9ac1827..8c5733f9 100644 --- a/src/com/connectsdk/service/webos/WebOSTVMouseSocketConnection.java +++ b/src/com/connectsdk/service/webos/WebOSTVMouseSocketConnection.java @@ -20,8 +20,13 @@ package com.connectsdk.service.webos; +import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.security.KeyException; +import java.security.NoSuchAlgorithmException; + +import javax.net.ssl.SSLContext; import org.java_websocket.WebSocket.READYSTATE; import org.java_websocket.client.WebSocketClient; @@ -95,14 +100,19 @@ public void onClose(int arg0, String arg1, boolean arg2) { SSLContext sslContext = SSLContext.getInstance("TLS"); customTrustManager = new WebOSTVTrustManager(); sslContext.init(null, new WebOSTVTrustManager[] {customTrustManager}, null); - WebSocketClient.WebSocketClientFactory fac = new DefaultSSLWebSocketClientFactory(sslContext); - ws.setWebSocketFactory(fac); + //Web-Socket 1.3.7 patch + ws.setSocket(sslContext.getSocketFactory().createSocket()); + ws.setConnectionLostTimeout(0); } catch (KeyException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (RuntimeException e) { + e.printStackTrace(); } - + //patch ends ws.connect(); } diff --git a/src/com/connectsdk/service/webos/WebOSTVServiceSocketClient.java b/src/com/connectsdk/service/webos/WebOSTVServiceSocketClient.java index dfba3222..ac26ee60 100644 --- a/src/com/connectsdk/service/webos/WebOSTVServiceSocketClient.java +++ b/src/com/connectsdk/service/webos/WebOSTVServiceSocketClient.java @@ -1,6 +1,7 @@ package com.connectsdk.service.webos; import java.io.ByteArrayInputStream; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; @@ -10,17 +11,14 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; import org.java_websocket.WebSocket; -import org.java_websocket.client.DefaultSSLWebSocketClientFactory; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import org.json.JSONArray; @@ -678,14 +676,23 @@ else if (payloadType.equals("hello")) { } private void setSSLContext(SSLContext sslContext) { - setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sslContext)); + //Web-Socket 1.3.7 patch + try { + setSocket(sslContext.getSocketFactory().createSocket()); + setConnectionLostTimeout(0); + } catch (IOException e) { + e.printStackTrace(); + } catch (RuntimeException e) { + e.printStackTrace(); + } + //patch ends } protected void setupSSL() { try { SSLContext sslContext = SSLContext.getInstance("TLS"); - customTrustManager = new TrustManager(); - sslContext.init(null, new TrustManager [] {customTrustManager}, null); + customTrustManager = new WebOSTVTrustManager(); + sslContext.init(null, new WebOSTVTrustManager [] {customTrustManager}, null); setSSLContext(sslContext); if (!(mService.getServiceConfig() instanceof WebOSTVServiceConfig)) {