From 6301c821cfdf9e8b8dfd8d720e6a1277d11a7182 Mon Sep 17 00:00:00 2001
From: Sam Nelson <sam.nelson@domo.com>
Date: Thu, 7 May 2020 14:07:02 -0700
Subject: [PATCH 1/2] fixed ssl with proxy

---
 .../websocket/WebSocketClientWrapper.java          | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
index cce5857a..04742f53 100644
--- a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
+++ b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
@@ -1,7 +1,9 @@
 package com.pusher.client.connection.websocket;
 
 import java.io.IOException;
+import java.net.InetSocketAddress;
 import java.net.Proxy;
+import java.net.Socket;
 import java.net.URI;
 import java.security.KeyManagementException;
 import java.security.NoSuchAlgorithmException;
@@ -10,6 +12,8 @@
 import javax.net.ssl.SSLException;
 import javax.net.ssl.SSLSocketFactory;
 
+import org.java_websocket.WebSocket;
+import org.java_websocket.WebSocketImpl;
 import org.java_websocket.client.WebSocketClient;
 import org.java_websocket.handshake.ServerHandshake;
 
@@ -37,9 +41,15 @@ public WebSocketClientWrapper(final URI uri, final Proxy proxy, final WebSocketL
                                                    // certificates
 
                 final SSLSocketFactory factory = sslContext.getSocketFactory();// (SSLSocketFactory)
-                                                                               // SSLSocketFactory.getDefault();
+                                                    // SSLSocketFactory.getDefault();
 
-                setSocket(factory.createSocket());
+                int port = uri.getPort();
+                if( port == -1 ) {
+                    port = WebSocketImpl.DEFAULT_WSS_PORT;
+                }
+                Socket socket = new Socket(proxy);
+                socket.connect(new InetSocketAddress(uri.getHost(), port));
+                setSocket(factory.createSocket(socket, uri.getHost(), port, true));
             }
             catch (final IOException e) {
                 throw new SSLException(e);

From 208d29a0e7077a63e11111d9b3d64edc75ccc99d Mon Sep 17 00:00:00 2001
From: sonologico <1592315+sonologico@users.noreply.github.com>
Date: Fri, 21 Oct 2022 16:58:11 +0200
Subject: [PATCH 2/2] Update WebSocketClientWrapper.java

---
 .../client/connection/websocket/WebSocketClientWrapper.java     | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
index 73d2fad5..42bf50ef 100644
--- a/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
+++ b/src/main/java/com/pusher/client/connection/websocket/WebSocketClientWrapper.java
@@ -53,6 +53,8 @@ public WebSocketClientWrapper(final URI uri, final Proxy proxy, final WebSocketL
             }
             catch (final IOException e) {
                 throw new SSLException(e);
+            } catch (final NoSuchAlgorithmException e) {
+                throw new SSLException(e);
             } catch (final KeyManagementException e) {
                 throw new SSLException(e);
             }