123456789101112131415161718192021222324252627282930313233343536 |
- package controllers
-
- import (
- "annual-lottery2/utils"
- "net/http"
-
- "github.com/astaxie/beego"
- )
-
- var lpdata = utils.NewMsgQueue()
-
- // LongPoll 长轮询
- func (c *BaseController) LongPoll() {
- mth := c.Ctx.Input.Method()
-
- // id := c.GetString(":id")
-
- if mth == http.MethodGet {
- select {
- case dt := <-lpdata.Queue():
- beego.Info("发送状态数据: ", dt)
- c.ResponseJson(dt)
- return
- case <-c.Ctx.ResponseWriter.ResponseWriter.(http.CloseNotifier).CloseNotify():
- c.ResponseJson("nil")
- return
- }
- } else {
- msg := c.GetString("message")
- beego.Info("获取到状态数据: ", msg)
- go lpdata.Push(msg)
- c.ResponseJson("")
- }
-
- return
- }
|