gpt4 book ai didi

Websockets 读/写

转载 作者:IT王子 更新时间:2023-10-29 02:34:44 26 4
gpt4 key购买 nike

去/websockets 菜鸟这里。

我修改了this working example以这样的方式,而不是

io.Copy(ws,ws)

我在做

msg := []byte{}
_, err := ws.Read(msg)
_, err = ws.Write(msg)

(为简洁省略打印错误)

对我来说它看起来一样,但它不起作用。它不读取任何内容(尽管也不返回错误)。在客户端(Chrome/FF),我在尝试发送第二条消息时收到“WebSocket 已经处于关闭或关闭状态”。

一般来说,golang中ws的read msg -> do something -> write msg的方法是什么?

最佳答案

这样做的时候,你读写0字节,你需要分配一个实际的缓冲区大小。而且,它需要在一个循环中。

ws.Read() 不会为您分配缓冲区,只会读取 len(msg),在您的示例中,它是 0。

Cf io.复制来源:

buf := make([]byte, 32*1024)
for {
nr, er := src.Read(buf)
if nr > 0 {
nw, ew := dst.Write(buf[0:nr])

关于Websockets 读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838201/

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