enable use cdn edge ip to accelerate cdn transport when wss

This commit is contained in:
catbestme 2024-07-02 19:22:37 +08:00
parent 41ccf890e9
commit 661e4b2d3e
2 changed files with 11 additions and 2 deletions

View File

@ -170,6 +170,7 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) {
wsOpts.WriteBufferSize = node.GetInt("wbuf") wsOpts.WriteBufferSize = node.GetInt("wbuf")
wsOpts.UserAgent = node.Get("agent") wsOpts.UserAgent = node.Get("agent")
wsOpts.Path = node.Get("path") wsOpts.Path = node.Get("path")
wsOpts.Host = node.Get("host")
timeout := node.GetDuration("timeout") timeout := node.GetDuration("timeout")

12
ws.go
View File

@ -5,15 +5,15 @@ import (
"crypto/sha1" "crypto/sha1"
"crypto/tls" "crypto/tls"
"encoding/base64" "encoding/base64"
"fmt"
"io" "io"
"net" "net"
"net/http" "net/http"
"net/http/httputil" "net/http/httputil"
"net/url"
"sync" "sync"
"time" "time"
"net/url"
"github.com/go-log/log" "github.com/go-log/log"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
smux "github.com/xtaci/smux" smux "github.com/xtaci/smux"
@ -31,6 +31,7 @@ type WSOptions struct {
EnableCompression bool EnableCompression bool
UserAgent string UserAgent string
Path string Path string
Host string
} }
type wsTransporter struct { type wsTransporter struct {
@ -749,6 +750,13 @@ func websocketClientConn(url string, conn net.Conn, tlsConfig *tls.Config, optio
if options.UserAgent != "" { if options.UserAgent != "" {
header.Set("User-Agent", options.UserAgent) header.Set("User-Agent", options.UserAgent)
} }
if options.Host != "" {
fmt.Println("获取到命令行传参host==>", options.Host)
dialer.TLSClientConfig.ServerName = options.Host
header.Set("Host", options.Host)
}
fmt.Printf("TLSClientConfig==>%+v\n", dialer.TLSClientConfig)
c, resp, err := dialer.Dial(url, header) c, resp, err := dialer.Dial(url, header)
if err != nil { if err != nil {
return nil, err return nil, err