🐛 bug fix

This commit is contained in:
JustSong
2022-07-29 23:53:06 +08:00
parent 090bbcc61b
commit 14fd2d07f3
3 changed files with 32 additions and 7 deletions
+27 -4
View File
@@ -6,6 +6,7 @@ import (
"log"
"net/url"
"os"
"time"
)
var (
@@ -18,6 +19,9 @@ type Verification struct {
Token string `json:"token"`
}
type Ping struct {
}
func main() {
flag.Parse()
connString := *conn
@@ -37,6 +41,12 @@ func main() {
scheme = "wss"
}
u := url.URL{Scheme: scheme, Host: connUrl.Host, Path: "/"}
verification := &Verification{
Prefix: connUrl.Path[1:],
Token: *token,
}
ping := &Ping{}
ticker := time.NewTicker(60 * time.Second)
for {
log.Printf("Connecting to %s...\n", u.String())
c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
@@ -45,20 +55,33 @@ func main() {
return
}
log.Printf("Server connected.\n")
verification := &Verification{
Prefix: connUrl.Path[1:],
Token: *token,
}
err = c.WriteJSON(verification)
if err != nil {
log.Fatal(err.Error())
}
go func() {
for {
select {
case <-ticker.C:
if err := c.WriteJSON(ping); err != nil {
log.Println("Error occurred when send ping message:", err)
log.Println("Connection lost, retrying...")
_ = c.Close()
break
} else {
log.Println("Ping message sent.")
}
}
}
}()
for {
var message = new(Message)
err = c.ReadJSON(message)
if err != nil {
log.Println("Error occurred when read message:", err)
log.Println("Connection lost, retrying...")
_ = c.Close()
break
} else {
log.Println("New message arrived.")