You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang WebSocket无法连接问题求助(附完整代码)

Golang WebSocket连接错误排查求助

连接Golang WebSocket时出现错误,错误截图如下:
WebSocket连接错误截图

以下是我的代码实现:

route.go中的路由配置

func Setup(app *fiber.App) {
app.Use(cache.New(cache.Config{
        Next: func(c *fiber.Ctx) bool {
            return strings.Contains(c.Route().Path, "/chat/ws")
        },
    }))
    admin_route.Get("/chat/ws", websocket.New(admin.WebsocketChat))

    go admin.SocketManager()
}

admin包内的WebSocket处理及管理代码

var (
    register   = make(chan *websocket.Conn)
    unregister = make(chan *websocket.Conn)
    clients    = make(map[*websocket.Conn]bool)
)
func SocketListener(c *websocket.Conn) {
    // Handle incoming messages from WebSocket connection
    for {
        messageType, message, err := c.ReadMessage()
        if err != nil {
            if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
                log.Println("read error:", err)
            }
            return
        }
        if messageType == websocket.TextMessage {
            log.Println("got text message:", string(message))

            // Broadcast the message to all connected clients
            for client := range clients {
                err := client.WriteMessage(websocket.TextMessage, message)
                if err != nil {
                    log.Println("error writing message:", err)
                    return
                }
            }
        } else {
            log.Println("received message of type:", messageType)
        }
    }
}

func WebsocketChat(c *websocket.Conn) {
    register <- c
    defer func() {
        unregister <- c
        c.Close()
    }()
    go SocketListener(c)
}

func SocketManager() {
    for {
        select {
        case c := <-register:
            clients[c] = true
        case c := <-unregister:
            delete(clients, c)
        }
    }
}

我无法定位代码中的问题,相关论坛也缺少此类问题的解决方案,特此求助。

内容的提问来源于stack exchange,提问作者Danendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:07