fork of shinosaki's websocket client
Go to file
minish 3b9bd07185
fix: remove reconnect
2025-12-19 21:35:58 -05:00
websocket fix: remove reconnect 2025-12-19 21:35:58 -05:00
LICENSE init 2025-02-27 11:04:15 +00:00
README.md init 2025-02-27 11:04:15 +00:00
example.go fix: remove reconnect 2025-12-19 21:35:58 -05:00
go.mod fix: call onclose when conn closes 2025-12-19 01:37:20 -05:00
go.sum init 2025-02-27 11:04:15 +00:00

README.md

websocket-client-go

websocket-client-go is a simple wrapper library for Go's x/net/websocket.

Installation

go get github.com/shinosaki/websocket-client-go

Usage

example.go

package main

import (
	"log"
	"time"

	"github.com/shinosaki/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) {
			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); 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")
}

License

MIT

Author

shinosaki