diff --git a/server/http.go b/server/http.go index a43a240..8bc362c 100644 --- a/server/http.go +++ b/server/http.go @@ -244,18 +244,19 @@ func runHTTP(bot *coolq.CQBot, node yaml.Node) { return } - network, addr := "tcp", "" + network, addr := "tcp", conf.Address s := &httpServer{accessToken: conf.AccessToken} - if conf.Address != "" { + switch { + case conf.Address != "": uri, err := url.Parse(conf.Address) if err == nil && uri.Scheme != "" { network = uri.Scheme - addr = uri.Host + addr = uri.Host + uri.Path } - } else if conf.Host != "" || conf.Port != 0 { + case conf.Host != "" || conf.Port != 0: addr = fmt.Sprintf("%s:%d", conf.Host, conf.Port) log.Warnln("HTTP 服务器使用了过时的配置格式,请更新配置文件!") - } else { + default: goto client } s.api = api.NewCaller(bot) diff --git a/server/websocket.go b/server/websocket.go index 888cd49..df8c9a2 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -147,10 +147,10 @@ func runWSServer(b *coolq.CQBot, node yaml.Node) { log.Warn("正向 Websocket 使用了过时的配置格式,请更新配置文件") address = fmt.Sprintf("%s:%d", conf.Host, conf.Port) } else { - addr, err := url.Parse(conf.Address) - if err == nil && addr.Scheme != "" { - network = addr.Scheme - address = addr.Host + uri, err := url.Parse(conf.Address) + if err == nil && uri.Scheme != "" { + network = uri.Scheme + address = uri.Host + uri.Path } } s := &webSocketServer{