mirror of
https://github.com/wisplite/tether.git
synced 2026-05-01 06:22:41 -05:00
31 lines
565 B
Go
31 lines
565 B
Go
package reactivity
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/gorilla/websocket"
|
|
)
|
|
|
|
type Client struct {
|
|
ID string
|
|
Conn *websocket.Conn
|
|
Send chan []byte
|
|
}
|
|
|
|
func NewClient(conn *websocket.Conn) *Client {
|
|
return &Client{ID: uuid.NewString(), Conn: conn, Send: make(chan []byte, 256)}
|
|
}
|
|
|
|
func (c *Client) WritePump() {
|
|
defer c.Conn.Close()
|
|
|
|
for message := range c.Send {
|
|
err := c.Conn.WriteMessage(websocket.TextMessage, message)
|
|
if err != nil {
|
|
slog.Error("Client write pump failed", "error", err, "client", c.ID)
|
|
return
|
|
}
|
|
}
|
|
}
|