From a8d9a0901286017fcedd21ac768ab0bc77ac09b1 Mon Sep 17 00:00:00 2001 From: Vadym Feshchenko Date: Fri, 25 Sep 2015 10:38:17 +0300 Subject: [PATCH 1/2] Fix issue #43 about leave thread when you connect via SSL --- src/io/socket/WebsocketTransport.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/io/socket/WebsocketTransport.java b/src/io/socket/WebsocketTransport.java index 0ec9bee..1b3e270 100644 --- a/src/io/socket/WebsocketTransport.java +++ b/src/io/socket/WebsocketTransport.java @@ -3,10 +3,11 @@ import java.io.IOException; import java.net.URI; import java.net.URL; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.regex.Pattern; import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; import org.java_websocket.client.DefaultSSLWebSocketClientFactory; import org.java_websocket.client.WebSocketClient; @@ -16,6 +17,7 @@ class WebsocketTransport extends WebSocketClient implements IOTransport { private final static Pattern PATTERN_HTTP = Pattern.compile("^http"); public static final String TRANSPORT_NAME = "websocket"; private IOConnection connection; + private ExecutorService exec; public static IOTransport create(URL url, IOConnection connection) { URI uri = URI.create( PATTERN_HTTP.matcher(url.toString()).replaceFirst("ws") @@ -30,7 +32,8 @@ public WebsocketTransport(URI uri, IOConnection connection) { this.connection = connection; SSLContext context = IOConnection.getSslContext(); if("wss".equals(uri.getScheme()) && context != null) { - this.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(context)); + exec = Executors.newSingleThreadScheduledExecutor(); + this.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(context, exec)); } } @@ -39,6 +42,10 @@ public WebsocketTransport(URI uri, IOConnection connection) { */ @Override public void disconnect() { + if (exec != null) { + exec.shutdownNow(); + exec = null; + } try { this.close(); } catch (Exception e) { From c410bbf47d88f4643e17be4487ae321de7e873ac Mon Sep 17 00:00:00 2001 From: Vadym Feshchenko Date: Fri, 25 Sep 2015 11:09:23 +0300 Subject: [PATCH 2/2] Fix issue #43 about leave thread when you setup connect via SSL --- src/io/socket/WebsocketTransport.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/io/socket/WebsocketTransport.java b/src/io/socket/WebsocketTransport.java index 1b3e270..b370591 100644 --- a/src/io/socket/WebsocketTransport.java +++ b/src/io/socket/WebsocketTransport.java @@ -103,6 +103,5 @@ public String getName() { @Override public void onError(Exception ex) { // TODO Auto-generated method stub - } } \ No newline at end of file