|
@@ -562,10 +562,13 @@ func (h *Hub) ConnectToServer(channel string, force bool) (err error) {
|
|
|
return err
|
|
|
}
|
|
|
var conn conn.Connect
|
|
|
+ var runProto string
|
|
|
addr := net.JoinHostPort(host.Host, strconv.Itoa(int(host.Port)))
|
|
|
- if host.Version == wsv2.VERSION && host.Proto == wsv2.PROTO {
|
|
|
- conn, err = wsv2.Client(h.cf, addr, host.Path, host.Hash)
|
|
|
+ if host.Version == wsv2.VERSION && (host.Proto == wsv2.PROTO || host.Proto == wsv2.PROTO_STL) {
|
|
|
+ runProto = wsv2.PROTO
|
|
|
+ conn, err = wsv2.Client(h.cf, host.Proto, addr, host.Path, host.Hash)
|
|
|
} else if host.Version == tpv2.VERSION && host.Proto == tpv2.PROTO {
|
|
|
+ runProto = tpv2.PROTO
|
|
|
conn, err = tpv2.Client(h.cf, addr, host.Hash)
|
|
|
} else {
|
|
|
return fmt.Errorf("not correct protocol and version found in: %+v", host)
|
|
@@ -577,7 +580,7 @@ func (h *Hub) ConnectToServer(channel string, force bool) (err error) {
|
|
|
return err
|
|
|
}
|
|
|
// 发送验证信息
|
|
|
- if err := conn.WriteAuthInfo(h.channel, h.authFunc(host.Proto, host.Version, channel, nil)); err != nil {
|
|
|
+ if err := conn.WriteAuthInfo(h.channel, h.authFunc(runProto, host.Version, channel, nil)); err != nil {
|
|
|
log.Println("[WriteAuthInfo ERROR]", err)
|
|
|
conn.Close()
|
|
|
host.Errors++
|
|
@@ -594,7 +597,7 @@ func (h *Hub) ConnectToServer(channel string, force bool) (err error) {
|
|
|
return err
|
|
|
}
|
|
|
// 检查版本和协议是否一致
|
|
|
- if version != host.Version || proto != host.Proto {
|
|
|
+ if version != host.Version || proto != runProto {
|
|
|
err = fmt.Errorf("[version or protocol wrong ERROR] %d, %s", version, proto)
|
|
|
log.Println(err)
|
|
|
conn.Close()
|