可以使用循环来等待客户端连接并发送消息,如下所示:

for {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println("Upgrade error:", err)
        continue
    }
    defer conn.Close()

    // 连接成功,开始读写数据
    for {
        _, msg, err := conn.ReadMessage()
        if err != nil {
            log.Println("Read error:", err)
            break
        }
        log.Println("Received message:", string(msg))

        reply := []byte("Received: " + string(msg))
        err = conn.WriteMessage(websocket.TextMessage, reply)
        if err != nil {
            log.Println("Write error:", err)
            break
        }
    }
}

这样,如果客户端没有连接,代码会一直等待直到连接成功并开始读写数据。如果连接断开或出现其他错误,代码会退出循环并关闭连接

golang websocket服务端代码中ReadMessage方法若是客户端没有链接会一直报错并且最后关闭websocket有什么办法可以解决这个问题等待客户端链接发送消息

原文地址: https://www.cveoy.top/t/topic/dUiX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录