diff --git a/lib/request/connect.py b/lib/request/connect.py
index 56f7c73363f..78a79141b6a 100644
--- a/lib/request/connect.py
+++ b/lib/request/connect.py
@@ -506,9 +506,25 @@ def getPage(**kwargs):
                 url = getBytes(url)  # Note: Python3 requires text while Python2 has problems when mixing text with binary POST
 
             if webSocket:
+                ws_proxy_port = None
+                ws_proxy_host = None
+                ws_proxy_auth = None
+                ws_proxy_scheme = None
+                
+                if conf.proxy:
+                    ws_proxy_uri = _urllib.parse.urlsplit(conf.proxy)
+                    ws_proxy_port = ws_proxy_uri.port
+                    ws_proxy_host = ws_proxy_uri.hostname
+                    ws_proxy_scheme = ws_proxy_uri.scheme
+
+                if conf.proxyCred:
+                    ws_proxy_auth = conf.proxyCred.split(":")
+
                 ws = websocket.WebSocket()
                 ws.settimeout(WEBSOCKET_INITIAL_TIMEOUT if kb.webSocketRecvCount is None else timeout)
-                ws.connect(url, header=("%s: %s" % _ for _ in headers.items() if _[0] not in ("Host",)), cookie=cookie)  # WebSocket will add Host field of headers automatically
+                ws.connect(url, header=("%s: %s" % _ for _ in headers.items() if _[0] not in ("Host",)), cookie=cookie, 
+                            http_proxy_host=ws_proxy_host, http_proxy_port=ws_proxy_port, 
+                            http_proxy_auth=ws_proxy_auth, proxy_type=ws_proxy_scheme)  # WebSocket will add Host field of headers automatically
                 ws.send(urldecode(post or ""))
 
                 _page = []