如何解决将任意JSON发送到大猩猩websocket连接
我有以下功能,我想将任意JSON数据发送到websocket连接。数据取决于发送到服务器的内容。如何在不为我要发送的每件事创建不同结构的情况下实现这一目标?
我正在考虑这样的事情:
git
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{}
}
因此,此语法似乎无效。在这里可以做什么?
解决方法
它是map[string]interface{}{"text": ...
。您错过了{}
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。