github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/apis/web.go (about) 1 package apis 2 3 import ( 4 "github.com/insionng/makross" 5 6 "time" 7 "github.com/insionng/yougam/models" 8 ) 9 10 func GetMessagesHandler(self *makross.Context) error { 11 12 _usr_, okay := self.Session.Get("SignedUser").(*models.User) 13 if !okay { 14 return self.NoContent(401) 15 } 16 17 ticker := time.NewTicker(30 * time.Second) 18 for { 19 select { 20 case <-ticker.C: 21 return self.JSON(nil, 204) 22 default: 23 if messages, e := models.GetMessagesViaReceiver(0, 0, _usr_.Username, "created"); (!(e != nil)) && (len(*messages) > 0) { 24 return self.JSON(messages) 25 26 } else { 27 time.Sleep(time.Second * 3) 28 } 29 } 30 } 31 32 }