源战役
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.9 KiB

  1. %%% ----------------------------------------------------------------------------
  2. %%% @author huangyongxing@yeah.net
  3. %%% @doc
  4. %%% 跨服数据结构
  5. %%% @end
  6. %%% ----------------------------------------------------------------------------
  7. -ifndef(CLUSTERS_HRL).
  8. -define(CLUSTERS_HRL, ok).
  9. %% 重连跨服服务器间隔时间
  10. -define(RECONNECT_TIME, 30000).
  11. %% 跨服中游戏服节点数据管理
  12. % -define(SQL_GET_CLUSTER_NODES, <<"SELECT `node` FROM `clusters`">>).
  13. -define(SQL_TRUNCATE_CLUSTERS,
  14. <<"TRUNCATE TABLE `clusters`">>).
  15. -define(SQL_REPLACE_CLUSTERS_NODE,
  16. <<"REPLACE INTO `clusters` (`node`,`server_id`) VALUES('~ts', ~w)"/utf8>>).
  17. -define(SQL_DELETE_CLUSTERS_NODE,
  18. <<"DELETE from `clusters` WHERE `server_id` = ~w"/utf8>>).
  19. %% 节点类型
  20. -define(CLUSTER_NODE, 0). % 游戏服节点
  21. -define(CLUSTER_CENTER, 1). % 跨服中心节点
  22. %% 游戏服id对应节点信息
  23. -define(SERVER_INFO, server_info).
  24. -record(server_info, {
  25. server_id = 0 % 游戏服id
  26. ,node = undefined % 节点名
  27. ,now_server_id = 0 % 合服后游戏服最新的ServerId
  28. ,server_num = 0 % 游戏服编号
  29. ,platform = <<>> % 平台名
  30. ,alive = 0 % 当前连上来的服务器为1,如果服务器断开,则置为0
  31. }).
  32. %% 跨服中心节点数据
  33. -record(clusters_center, {
  34. node % 跨服本节点名
  35. ,nodes % 跨服节点列表
  36. }).
  37. %% 跨服中心单个节点数据
  38. -record(game_node, {
  39. node = undefined % 节点名
  40. ,server_id = 0 % 游戏服id(后台唯一Id)
  41. ,platform = "" % 平台名
  42. ,server_num = 0 % 服务器编号(玩家可见的服编号)
  43. ,server_name = <<>> % 游戏服名称
  44. ,pid = undefined % 本地服节点的跨服连接进程pid
  45. ,monitor = undefined % 对本地服节点管理进程的monitor(跨服中心用)
  46. ,open_time = 0 % 具体开服时间戳
  47. ,merge_server_ids = [] % 合服server_id列表
  48. }).
  49. %% 跨服本地服节点状态数据
  50. -record(clusters_node, {
  51. center_node = none % 跨服中心节点
  52. ,cookie = undefined % 连接cookie
  53. ,platform = "" % 平台
  54. ,server_id = 0 % server_id
  55. ,conn_times = 0 % 连接次数
  56. ,conn_timer = undefined % 连接定时器
  57. ,pid = undefined % 跨服中心管理进程pid(用于判定是否已经连接)
  58. ,monitor = undefined % 对跨服中心管理进程的monitor
  59. ,conn_worker = undefined % 负责与center节点初步建立连接的进程pid
  60. ,wait_conn = false % 是否等待conn_worker处理连接状态
  61. }).
  62. -endif.