controller.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package websocket
  2. import (
  3. "github.com/gogf/gf/v2/os/gtime"
  4. "github.com/gogf/gf/v2/util/gconv"
  5. )
  6. // LoginController 用户登录
  7. func LoginController(client *Client, req *request) {
  8. userId := gconv.Uint64(0)
  9. // 用户登录
  10. login := &login{
  11. UserId: userId,
  12. Client: client,
  13. }
  14. clientManager.Login <- login
  15. client.SendMsg(&WResponse{
  16. Event: Login,
  17. Data: "success",
  18. })
  19. }
  20. func IsAppController(client *Client) {
  21. client.isApp = true
  22. }
  23. // JoinController 加入
  24. func JoinController(client *Client, req *request) {
  25. name := gconv.String(req.Data["name"])
  26. if !client.tags.Contains(name) {
  27. client.tags.Append(name)
  28. }
  29. client.SendMsg(&WResponse{
  30. Event: Join,
  31. Data: client.tags.Slice(),
  32. })
  33. }
  34. // QuitController 退出
  35. func QuitController(client *Client, req *request) {
  36. name := gconv.String(req.Data["name"])
  37. if client.tags.Contains(name) {
  38. client.tags.RemoveValue(name)
  39. }
  40. client.SendMsg(&WResponse{
  41. Event: Quit,
  42. Data: client.tags.Slice(),
  43. })
  44. }
  45. func PingController(client *Client) {
  46. currentTime := uint64(gtime.Now().Unix())
  47. client.Heartbeat(currentTime)
  48. }