websocket-client-go/example.go

67 lines
1.3 KiB
Go

package main
import (
"log"
"time"
"git.min.rip/min/websocket-client-go/websocket"
)
const (
WEBSOCKET_URL = "wss://echo.websocket.org"
ATTEMPTS = 3
INTERVAL = 2
)
func main() {
ws := websocket.NewWebSocketClient(
// onOpen
func(ws *websocket.WebSocketClient, isReconnecting bool) {
if isReconnecting {
log.Println("Reconnected")
} else {
log.Println("Connected")
}
},
// onClose
func(ws *websocket.WebSocketClient, isReconnecting bool) {
if isReconnecting {
log.Println("Reconnecting...")
} else {
log.Println("Disconnected")
}
},
// onMessage
func(ws *websocket.WebSocketClient, payload []byte) {
log.Println("Received message:", string(payload))
},
)
// Connect to server
if err := ws.Connect(WEBSOCKET_URL, ATTEMPTS, INTERVAL, false); err != nil {
log.Println("Failed to connect:", err)
}
sendMessage := func() {
data := map[string]string{"message": "Hello WebSocket"}
if err := ws.SendJSON(data); err != nil {
log.Println("Failed to send message:", err)
}
}
// Send a message
sendMessage()
time.Sleep(2 * time.Second)
// Reconnecting
ws.Reconnect(WEBSOCKET_URL, ATTEMPTS, INTERVAL)
sendMessage()
time.Sleep(2 * time.Second)
ws.Disconnect(false)
log.Println("Done")
}