登录
首页 >  Golang >  Go问答

向gorilla websocket发送任意JSON数据

来源:stackoverflow

时间:2024-02-20 17:27:23 228浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《向gorilla websocket发送任意JSON数据》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我有以下函数,我想将任意 json 数据发送到 websocket 连接。数据取决于发送到服务器的内容。如何在不为我要发送的每个内容创建不同的结构的情况下实现这一点?

我正在考虑这样的事情:

func register(c *websocket.conn, m websocketgeneralclientmessage) {
    var d registerdata
    json.unmarshal(m.data, &d)
    if len(d.email) < 6 || len(d.email) > 64 {
        c.writejson(websocketgeneralservermessage{
            type: "error", data: map[string]interface{"text": "this is an error"}})
        return
    }
    if len(d.password) < 6 || len(d.password) > 32 {
        c.writejson(websocketgeneralservermessage{
            type: "error", data: map[string]interface{"text": "this is another error"}})
        return
    }
    err := checkmail.validateformat(d.email)
    if err != nil {
        c.writejson(websocketgeneralservermessage{
            type: "error", data: map[string]interface{"text": "this is different than all the previous errors"}})
        return
    }
    uuid, email, password, err := db.registeraccount(requestemail, requestpassword)
    if err != nil {
        c.writejson(websocketgeneralservermessage{
            type: "error", data: map[string]interface{"text": "an error occured while saving the account to the database"}})
        return
    }
    c.writejson(websocketgeneralservermessage{
        type: "success", data: map[string]interface{"uuid": uuid}})
    return
}
type websocketgeneralservermessage struct {
    type string
    data map[string]interface{}
}

但是,编译器说:

syntax error: unexpected literal "text", expecting method or interface name

所以这个语法似乎无效。这里可以做什么?


解决方案


它是 map[string]interface{}{"text": ...。您错过了 {}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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