|
|
- %%% ----------------------------------------------------------------------------
- %%% @author huangyongxing@yeah.net
- %%% @doc
- %%% 跨服数据结构
- %%% @end
- %%% ----------------------------------------------------------------------------
-
- -ifndef(CLUSTERS_HRL).
- -define(CLUSTERS_HRL, ok).
-
- %% 重连跨服服务器间隔时间
- -define(RECONNECT_TIME, 30000).
-
- %% 跨服中游戏服节点数据管理
- % -define(SQL_GET_CLUSTER_NODES, <<"SELECT `node` FROM `clusters`">>).
- -define(SQL_TRUNCATE_CLUSTERS,
- <<"TRUNCATE TABLE `clusters`">>).
- -define(SQL_REPLACE_CLUSTERS_NODE,
- <<"REPLACE INTO `clusters` (`node`,`server_id`) VALUES('~ts', ~w)"/utf8>>).
- -define(SQL_DELETE_CLUSTERS_NODE,
- <<"DELETE from `clusters` WHERE `server_id` = ~w"/utf8>>).
-
- %% 节点类型
- -define(CLUSTER_NODE, 0). % 游戏服节点
- -define(CLUSTER_CENTER, 1). % 跨服中心节点
-
- %% 游戏服id对应节点信息
- -define(SERVER_INFO, server_info).
- -record(server_info, {
- server_id = 0 % 游戏服id
- ,node = undefined % 节点名
- ,now_server_id = 0 % 合服后游戏服最新的ServerId
- ,server_num = 0 % 游戏服编号
- ,platform = <<>> % 平台名
- ,alive = 0 % 当前连上来的服务器为1,如果服务器断开,则置为0
- }).
-
- %% 跨服中心节点数据
- -record(clusters_center, {
- node % 跨服本节点名
- ,nodes % 跨服节点列表
- }).
-
- %% 跨服中心单个节点数据
- -record(game_node, {
- node = undefined % 节点名
- ,server_id = 0 % 游戏服id(后台唯一Id)
- ,platform = "" % 平台名
- ,server_num = 0 % 服务器编号(玩家可见的服编号)
- ,server_name = <<>> % 游戏服名称
- ,pid = undefined % 本地服节点的跨服连接进程pid
- ,monitor = undefined % 对本地服节点管理进程的monitor(跨服中心用)
- ,open_time = 0 % 具体开服时间戳
- ,merge_server_ids = [] % 合服server_id列表
- }).
-
- %% 跨服本地服节点状态数据
- -record(clusters_node, {
- center_node = none % 跨服中心节点
- ,cookie = undefined % 连接cookie
- ,platform = "" % 平台
- ,server_id = 0 % server_id
- ,conn_times = 0 % 连接次数
- ,conn_timer = undefined % 连接定时器
- ,pid = undefined % 跨服中心管理进程pid(用于判定是否已经连接)
- ,monitor = undefined % 对跨服中心管理进程的monitor
- ,conn_worker = undefined % 负责与center节点初步建立连接的进程pid
- ,wait_conn = false % 是否等待conn_worker处理连接状态
- }).
-
- -endif.
|