%%% ----------------------------------------------------------------------------
|
|
%%% @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.
|