spinplay.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "math/rand"
  6. "time"
  7. "bet24.com/log"
  8. coreservice "bet24.com/servers/coreservice/client"
  9. "bet24.com/servers/games/spinplay/config"
  10. "bet24.com/servers/games/spinplay/gamelogic"
  11. "bet24.com/servers/insecureframe/frame"
  12. "bet24.com/servers/insecureframe/gate"
  13. robotmanager "bet24.com/servers/insecureframe/robot"
  14. "bet24.com/servers/transaction"
  15. "bet24.com/utils"
  16. )
  17. func waitInput() {
  18. for {
  19. var cmd string
  20. var param1 string
  21. var param2 string
  22. fmt.Scanf("%s %s %s", &cmd, &param1, &param2)
  23. switch cmd {
  24. case "exit":
  25. gamelogic.Stopping = true
  26. robotmanager.Exit()
  27. frame.StopServer()
  28. go transaction.DoGameRoomPing(gamelogic.GAMEID, 1, config.RoomConfigName)
  29. case "listuser":
  30. gate.DumpUsers()
  31. case "robotlist":
  32. robotmanager.Dump()
  33. default:
  34. if !frame.Dump(cmd, param1, param2) {
  35. log.Release("unknown command")
  36. }
  37. }
  38. }
  39. }
  40. func startRoomPing() {
  41. if gamelogic.Stopping {
  42. return
  43. }
  44. time.AfterFunc(20*time.Second, startRoomPing)
  45. //将本server的Ip和端口写入redis
  46. for i := 0; i < len(config.Rooms.Rooms); i++ {
  47. d, _ := json.Marshal(config.Rooms.Rooms[i].RoomInfoBase)
  48. // fmt.Println(string(d))
  49. go transaction.DoGameRoomPing(gamelogic.GAMEID, 2, config.Rooms.Rooms[i].RoomName)
  50. frame.UpdateRoomList(config.Rooms.Rooms[i].RoomName, config.Rooms.Rooms[i].RoomDesc, string(d), config.Rooms.Rooms[i].RoomID-1)
  51. }
  52. }
  53. func main() {
  54. defer waitInput()
  55. rand.Seed(time.Now().UnixNano())
  56. coreservice.SetServiceAddr(config.Server.ServiceAddr)
  57. // 可以从coreservice中读取配置
  58. config.Run()
  59. utils.SetErrorFile("log/spinplay/err.log", "spinplay starting")
  60. // 把数据库链接都创建起来
  61. gamelogic.Run()
  62. startRoomPing()
  63. }