From 8dfec52286ffa568fd3d7a3f60d0a7580e01a36b Mon Sep 17 00:00:00 2001 From: wenyifan Date: Thu, 4 Aug 2022 10:00:17 +0800 Subject: [PATCH] =?UTF-8?q?ws=20path=E6=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ws.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ws.go b/ws.go index 6e2a958..233be77 100644 --- a/ws.go +++ b/ws.go @@ -63,8 +63,12 @@ func (tr *wsTransporter) Handshake(conn net.Conn, options ...HandshakeOption) (n if path == "" { path = defaultWSPath } - url := url.URL{Scheme: "ws", Host: opts.Host, Path: path} - return websocketClientConn(url.String(), conn, nil, wsOptions) + urlObj := url.URL{Scheme: "ws", Host: opts.Host, Path: path} + urlStr, errUnescape := url.QueryUnescape(urlObj.String()) + if errUnescape != nil { + log.Logf("[ws] URL QueryUnescape Error URL.String() -> %s", urlObj.String()) + } + return websocketClientConn(urlStr, conn, nil, wsOptions) } type mwsTransporter struct { @@ -225,8 +229,12 @@ func (tr *wssTransporter) Handshake(conn net.Conn, options ...HandshakeOption) ( if path == "" { path = defaultWSPath } - url := url.URL{Scheme: "wss", Host: opts.Host, Path: path} - return websocketClientConn(url.String(), conn, opts.TLSConfig, wsOptions) + urlObj := url.URL{Scheme: "wss", Host: opts.Host, Path: path} + urlStr, errUnescape := url.QueryUnescape(urlObj.String()) + if errUnescape != nil { + log.Logf("[ws] URL QueryUnescape Error URL.String() -> %s", urlObj.String()) + } + return websocketClientConn(urlStr, conn, opts.TLSConfig, wsOptions) } type mwssTransporter struct {