Can';是否在WebSocket控制器中保存会话?
我想为每个用户创建一个Goroutine,以便按顺序发送websocket数据。因此,我编写了如下代码Can';是否在WebSocket控制器中保存会话?,websocket,revel,Websocket,Revel,我想为每个用户创建一个Goroutine,以便按顺序发送websocket数据。因此,我编写了如下代码 func (c User) List(ws *websocket.Conn) revel.Result { disconnect := make(chan bool) if c.Session["connected"] != "true" { c.Session["connected"] = "true" go func() {
func (c User) List(ws *websocket.Conn) revel.Result {
disconnect := make(chan bool)
if c.Session["connected"] != "true" {
c.Session["connected"] = "true"
go func() {
for {
select {
case <-ticker.C:
if websocket.JSON.Send(ws, &map[string]interface{}{"hoge": "fuga"}) != nil {
c.Session["connected"] = "false"
disconnect <- true
}
}
}
}()
}
<-disconnect
return nil
}
func (c App) WebSocket(ws *websocket.Conn) revel.Result {
fmt.Println(c.Session)
c.Session["connected"] = "true"
return nil
}
输出是这样的
map[]
map[]
无法在WebSocket控制器中保存会话
我想我们需要一个会话。保存方法,不是吗?我明白了
Revel使用cookie保存会话数据。这些值存储在密钥“REVEL_SESSION”的cookie中。因此,revel在保存Cookie时使用http头集Cookie。但是,我们使用websocket协议。因此,我们无法保存cookie