登录
首页 >  Golang >  Go问答

如何在 websocket 上发送编组数据?

来源:stackoverflow

时间:2024-03-21 22:24:35 247浏览 收藏

本文讨论如何在 WebSocket 上发送编组数据。它介绍了调试服务器端代码时遇到的问题,其中使用 JSON 序列化结构体,但客户端收到空 JSON。解决方案是使用正确的 JSON 标记来指定结构体字段的名称,并确保正确地调用 WriteMessage 方法。文中还提供了示例代码,说明如何正确发送编组数据。

问题内容

调试以下服务器端代码时:

type mystruct struct {
        key   string
        value string
    }

    key, value := gen()
    data := mystruct{key, value}
    myjson, err := json.marshal(data)
    err = conn.writemessage(websocket.textmessage, myjson)

gen() 使用字符串填充 keyvalue

myjson 显示:

在web套接字上写入myjson后,客户端收到空json:

ws.onmessage = function (evt)
            {
                console.log(evt.data)

            };

为什么conn.writemessage()不将数据(myjson)传输到客户端?


解决方案


@zerkms 是对的,你必须有这样的东西:

type myStruct struct {
    Key   string `json:"key"`
    Value string `json:"value"`
}

key, value := gen()
data := myStruct{Key: key, Value: value}
myJSON, err := json.Marshal(data)
if err != nil {
    // error handling
}
err = conn.WriteMessage(websocket.TextMessage, myJSON)
if err != nil {
    // error handling
}

您可以找到简单的示例 here

到这里,我们也就讲完了《如何在 websocket 上发送编组数据?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>