网络套接字读/写



Go/websockets noob here.

我已经修改了这个工作示例,而不是

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 个字节,需要分配实际的缓冲区大小。而且,它需要在循环中。

唰。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])

相关内容

  • 没有找到相关文章

最新更新