feat: safe websocket client implementation

This commit is contained in:
2025-09-25 14:14:24 +07:00
parent eac2ed2bf1
commit ef98404caf
5 changed files with 255 additions and 68 deletions

View File

@@ -63,6 +63,7 @@ func (h *Hub) Run() {
delete(h.Clients, c)
close(c.Send)
}
log.Println("Client Unregistered")
case message := <-h.Broadcast:
for client := range h.Clients {
select {
@@ -122,7 +123,7 @@ func ReadPump(c *Client, h *Hub) {
for {
messageType, message, err := c.Conn.ReadMessage()
if err != nil {
if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
if !websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
log.Printf("WebSocket error: %v", err)
}
break