server.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package service
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/coreservice/client"
  5. config "bet24.com/servers/coreservice/serviceconfig"
  6. "context"
  7. "encoding/json"
  8. "errors"
  9. "fmt"
  10. )
  11. var Addr string
  12. var mgr *manager
  13. func Run() {
  14. mgr = newManager()
  15. Addr = fmt.Sprintf(":%d", config.Server.ServerPort)
  16. }
  17. type Server int
  18. func (s *Server) SayHello(ctx context.Context, req *client.Request, rsp *client.Response) error {
  19. rsp.Data = fmt.Sprintf("Hello from coreservice")
  20. return nil
  21. }
  22. func (s *Server) OnUserEnter(ctx context.Context, args *client.Request, reply *client.Reply) error {
  23. var req client.Request_base
  24. if err := json.Unmarshal([]byte(args.Data), &req); err != nil {
  25. log.Debug("Server.OnUserEnter unmarshal fail %v", err)
  26. return errors.New("unmarshal error")
  27. }
  28. reply.Resp = mgr.onUserEnter(req.UserId, req.IpAddress)
  29. return nil
  30. }
  31. func (s *Server) OnUserExit(ctx context.Context, args *client.Request, reply *client.Reply) error {
  32. var req client.Request_base
  33. if err := json.Unmarshal([]byte(args.Data), &req); err != nil {
  34. log.Debug("Server.OnUserExit unmarshal fail %v", err)
  35. return errors.New("unmarshal error")
  36. }
  37. reply.Resp = mgr.onUserExit(req.UserId)
  38. return nil
  39. }
  40. func (s *Server) SyncUserList(ctx context.Context, args *client.Request, reply *client.Reply) error {
  41. var userList []int
  42. if err := json.Unmarshal([]byte(args.Data), &userList); err != nil {
  43. log.Debug("Server.SyncUserList unmarshal fail %v", err)
  44. return errors.New("unmarshal error")
  45. }
  46. mgr.syncUserList(userList)
  47. return nil
  48. }