From c5bdffa9d6ce59d15f58f03033266c897b1c30f8 Mon Sep 17 00:00:00 2001 From: jpicerno Date: Fri, 2 May 2014 10:52:56 -0700 Subject: [PATCH] Update WebsocketTransport.java If you are trying to use it several times to connect to different services this class will be instance several Executors.newSingleThreadScheduledExecutor(), so the app will be overtime create many threads and not only one as expected. --- src/io/socket/WebsocketTransport.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/io/socket/WebsocketTransport.java b/src/io/socket/WebsocketTransport.java index 0ec9bee..618f720 100644 --- a/src/io/socket/WebsocketTransport.java +++ b/src/io/socket/WebsocketTransport.java @@ -16,6 +16,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 static ExecutorService exec1; public static IOTransport create(URL url, IOConnection connection) { URI uri = URI.create( PATTERN_HTTP.matcher(url.toString()).replaceFirst("ws") @@ -30,7 +31,11 @@ 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)); + if(exec1!=null){ + exec1= Executors.newSingleThreadScheduledExecutor(); + } + this.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(context,exec1)); + } } @@ -98,4 +103,4 @@ public void onError(Exception ex) { // TODO Auto-generated method stub } -} \ No newline at end of file +}