package websocket import ( "github.com/gorilla/websocket" "time" "git.smsvc.net/pomodoro/ChronoTomato/internal/helper" ChronoTomato "git.smsvc.net/pomodoro/ChronoTomato/pkg/models" ) type Client ChronoTomato.GoTomatoClient // New websocket client // Connects to websocket func Connect(url string) Client { conn, _, err := websocket.DefaultDialer.Dial(url, nil) if err != nil { helper.Logger.Fatal("Dial error!", "reason", err) } helper.Logger.Info("Connected 󰖟 ", "host", url) time.Sleep(time.Second) return Client{Conn: conn} } // Disconnects from websocket func (c Client) Disconnect() { select { case <-Done: // session closed by remote return default: // Cleanly close the connection by sending a close message and then // waiting (with timeout) for the server to close the connection. c.Conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")) select { case <-Done: case <-time.After(time.Second): } return } }