go - 将任意JSON发送到 gorilla websocket连接

标签 go gorilla

我有以下功能,我想将任意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": ...。您错过了{}

关于go - 将任意JSON发送到 gorilla websocket连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63981670/

相关文章:

angularjs - 无法在 Go 中获取 Angular/Restangular 表单数据

python - 应用引擎 : convert ndb model to go lang struct

go - 如何处理 Go 包中嵌套的 "vendor"目录?

Golang 在包之间共享配置

go - 解密 Gorilla session Cookie 数据

Gorilla/Martini session 在 Cloud9 IDE 环境中不工作

go - 为什么http.HandlerFunc总是返回相同的随机数

json - panic : json: cannot unmarshal array into Go value of type main. 结构

go - slice 或数组是否充当全局范围?

docker - 使用 golang 将 docker 镜像拉取到本地注册表