golang websocket数据不正确

golang websocket数据不正确,go,websocket,Go,Websocket,我正在使用x.net.websocket从websocket读取数据。 数据相对较大。当我读它的时候,我不能完全读它,所以它被切断了。 有办法解决吗 func receiveWebsocket(ws *websocket.Conn) error { for { var msg = make([]byte, 1024*1024) // 1024kb m, err := ws.Read(msg) if err != nil {

我正在使用
x.net.websocket
从websocket读取数据。 数据相对较大。当我读它的时候,我不能完全读它,所以它被切断了。 有办法解决吗

func receiveWebsocket(ws *websocket.Conn) error {
    for {
        var msg = make([]byte, 1024*1024) // 1024kb
        m, err := ws.Read(msg) 
        if err != nil {
            log15.Error("ws read error", "error", err)
            return err
        }
        fmt.Println("length ---",m,  string(msg))
        response := string(msg[:m])
        assignmentWebsocket(response)
    }
}

根据日志,
m
值始终为4092,即使
msg
非常大。

第一次调用的读数始终小于4KB,出于安全原因,长度是有限的,如果要增加,请设置:

ws.MaxPayloadBytes = xxxx
从第二次呼叫开始,您的msg将被填充

如果您想在一次通话中阅读整个信息,请执行以下操作:

msg, err := ioutil.ReadAll(ws)

我使用了这个方法示例:我发现这个设置不起作用,最后,我使用了这个lib
github.com/gorilla/websocket
,它现在起作用了。