gpt4 book ai didi

go - Gorilla Websocket客户端读取消息错误

转载 作者:行者123 更新时间:2023-12-01 22:26:49 28 4
gpt4 key购买 nike

我有一个客户端的websocket代码看起来像这样

c, _, err := websocket.DefaultDialer.Dial("<url>", nil)
if err != nil {
panic(err)
}
go func() {
defer close(clientResponse)
for {
_, message, err := c.ReadMessage()
if err != nil {
log.Fatal("Error reading: ", err)
break
}
clientResponse <- message
fmt.Printf("recv: %s", message)
}
}()

发生了什么事,当我停止向服务器端写消息之后,我的客户端抛出了来自 ReadMessage方法的错误:
websocket: close 1006 (abnormal closure): unexpected EOF
任何人都知道此错误来自何处以及如何解决?到目前为止,我所能想到的是服务器/客户端具有“读/写”截止日期,此后,它将自动断开连接

最佳答案

EOF意味着您已经在文件末尾并且无法读取,可以将err == io.EOF添加到代码中,它可以正常工作。完整的代码如下:

c, _, err := websocket.DefaultDialer.Dial("<url>", nil)
if err != nil {
panic(err)
}
go func() {
defer close(clientResponse)
for {
_, message, err := c.ReadMessage()
if err != nil || err == io.EOF {
log.Fatal("Error reading: ", err)
break
}
clientResponse <- message
fmt.Printf("recv: %s", message)
}
}()

关于go - Gorilla Websocket客户端读取消息错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com