ws和wss的path参数url解码后发送

http代理connect方法支持host参数自定义
Proxy-Agent修改为nginx
This commit is contained in:
wenyifan
2022-08-03 15:47:56 +08:00
parent 2e4aea5188
commit 6d72721cab
8 changed files with 40 additions and 12 deletions

17
ws.go
View File

@ -170,8 +170,13 @@ func (tr *mwsTransporter) initSession(addr string, conn net.Conn, opts *Handshak
if path == "" {
path = defaultWSPath
}
url := url.URL{Scheme: "ws", Host: opts.Host, Path: path}
conn, err := 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())
}
conn, err := websocketClientConn(urlStr, conn, nil, wsOptions)
if err != nil {
return nil, err
}
@ -330,8 +335,12 @@ func (tr *mwssTransporter) initSession(addr string, conn net.Conn, opts *Handsha
if path == "" {
path = defaultWSPath
}
url := url.URL{Scheme: "wss", Host: opts.Host, Path: path}
conn, err := websocketClientConn(url.String(), conn, 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())
}
conn, err := websocketClientConn(urlStr, conn, tlsConfig, wsOptions)
if err != nil {
return nil, err
}