跳到主要内容

list_server

简介

目录服务器入口文件

当作为独立的服务器启动时,必须指定本文件为启动脚本(/e)

当作为pkg嵌入其它服务器时,必须先通过接口(set_embedded_mode)设置为嵌入模式,再调用pkg的初始化接口(list_server.setup)

参考文档

组件接口

ping.gs

网络会话命令处理对象 - ping

函数原型函数作用
void main(object session, map msg)命令处理函数

common.gs

主模块入口文件

函数原型函数作用
void boot()执行主模块启动操作
void shutdown()执行主模块关闭操作

FObHash.gs

为对象绑定一个固定的随机值的组件

函数原型函数作用
int get_hash()获取本对象绑定的固定的随机值

FSessionCmd.gs

执行网络会话命令的处理器对象的基础组件

包含本组件的对象必须实现一个public mixed main(object conn, ...)方法

函数原型函数作用
string cmd_name()获取命令名称
map SUCCESS(mixed cookie, map result = )新建一个成功结果
map FAILURE(mixed cookie, map result = )新建一个失败结果

delayd.gs

提供延迟执行的功能模块

函数原型函数作用
void delay_invoke(float seconds, function func)延迟执行(自动根据时间选择延迟精度)
void delay_invoke_high(float seconds, function func)延迟执行(高精度)
void delay_invoke_low(float seconds, function func)延迟执行(低精度)

auth.gs

提供令牌认证功能的模块

函数原型函数作用
bool auth_token(string token)认证一个令牌

config.gs

全局配置模块

函数原型函数作用
void init(string config_file)初始化全局配置
mixed get(string path)获取配置信息

mongo.gs

mongodb数据库操作模块

函数原型函数作用
void start()启动
bool is_enabled()是否已经启动本模块
object find_client(string name)根据指定的mongo数据库名称获取mongo客户端对象

mysql.gs

mysql数据库操作模块

函数原型函数作用
void start()启动
bool is_enabled()是否已经启动本模块
mixed eval(string script_name, ...)执行指定名称的数据库操作脚本
void dump()调试接口 - 输出所有数据库操作脚本的调试信息
void clear_stat()清空所有数据库操作脚本的统计信息

netd.gs

目录服务器的网络功能模块

函数原型函数作用
void start_listen(int port)监听指定端口
void stop_listen()停止监听
bool is_enable_debug()是否启用调试

Session.gs

网络会话对象

函数原型函数作用
bool is_connected()是否已连接
void bind_connection(object conn)绑定网络连接
object unbind_connection()解绑网络连接
void transfer_connection(object to)将当前持有的网络连接对象转移给目标网络会话对象
bool is_out_of_life()本会话是否超过生命周期
bool auto_close()尝试关闭本会话对象
void send(string cmd, map msg)发送消息

redis_data.gs

redis数据库操作模块

操作的目标数据库在全局配置文件的redis_database字段和redis_dbs字段中指定

函数原型函数作用
bool lock(string name, int timeout = 30, int retry_times = 30)尝试获取指定名称的锁
bool unlock(string name, int retry_times = 30)释放指定名称的锁
bool exists(string key)指定键是否存在
void set_int(string key, int val)为指定的键设置int类型的值(set)
int get_int(string key)获取指定的键对应的值(键不存在时返回0)(get)
int add_int(string key, int val)为指定的键增加指定的int值(incrby)
bool insert(string key, mixed value)插入一个新键(setnx)
void set(string key, mixed val)设置一对键值(set)
mixed get(string key)获取一个指定的键的值(get)
bool map_insert(string name, string key, mixed value)向哈希表插入一个键值对(hsetnx)
void map_set(string name, string key, mixed value)设置哈希表的一个键值对(hmset)
void map_set_many(string name, map kv_pairs)设置哈希表的多个键值对(hmset)
array map_keys(string name)获取哈希表的所有键
mixed map_get(string name, string key)从哈希表获得一个指定的键的值(hget)
void map_delete_many(string name, array keys)删除哈希表中的一个或者多个键值(hdel)
bool map_delete(string name, string key)删除哈希表中的一个或者多个键值(hdel)
map map_get_all(string name)获取哈希表内的所有键值对(hgetall)
map map_get_all_ex(string name, map error_dict)获取哈希表内的所有键值对(hgetall),获取异常时返回错误信息
bool map_delete_all(string name)删除哈希表中的所有键值对

internal_add_account_cache.gs

网络会话命令处理对象 - 添加账号缓存

函数原型函数作用
void main(object session, map msg)命令处理函数

internal_add_server_to_balance_group.gs

网络会话命令处理对象: 添加服务器到平衡组

函数原型函数作用
void main(object session, map msg)命令处理函数

internal_get_all_gs.gs

网络会话命令处理对象 - 获取所有已连接的服务器的状态

函数原型函数作用
void main(object session, map msg = )命令处理函数

internal_get_server_field_values.gs

网络会话命令处理对象 - 列出服务器列表中某个字段正在使用的所有取值(返回的取值不重复)

函数原型函数作用
void main(object session, map msg)命令处理函数

internal_remove_account_cache.gs

网络会话命令处理对象 - 移除账号缓存

函数原型函数作用
void main(object session, map msg)命令处理函数

internal_update_account_cache.gs

网络会话命令处理对象 - 更新账号缓存

函数原型函数作用
void main(object session, map msg)命令处理函数

internal_update_gs.gs

网络会话命令处理对象 - 更新服务器信息

函数原型函数作用
void main(object session, map msg)命令处理函数

account_cached.gs

维护账号缓存的功能模块

函数原型函数作用
mixed eval(string name, ...)执行指定名称的脚本
void debug_clean()调试接口 - 清楚账号缓存表
void add_cache(string account_id, string server_id, string rid, map info)添加账号角色信息缓存
void remove_cache(string server_id, string rid)移除账号角色信息缓存
void update_cache(string account_id, string server_id, string rid, map info)更新账号角色信息缓存
array query_caches(string account_id, mixed server_id = nil)查询指定服务器上的指定账号的所有角色信息缓存

server_balanced.gs

维护平衡组的功能模块

函数原型函数作用
void notify_refresh()通知同步更新平衡组信息
bool begin_modify()获取修改平衡组的锁(尝试开始修改)
void finish_modify()释放修改平衡组的锁(结束修改)
map get_all_groups()获取所有平衡组信息
array get_last_sync_info()调试接口 - 获取最近一次同步信息
bool debug_init_group(string group_id = "debug", string category = "debug", int server_count = 3)调试接口 - 初始化一个平衡组
void debug_delete_group(string group_id = "debug")调试接口 - 删除一个平衡组
array get_group_by_server_id(string server_id)获取指定服务器ID所在的平衡组信息
array get_visible_servers(function fn = nil, mixed category = nil)获取可见的服务器列表
array get_recommend_servers(mixed category = nil)获取推荐服务器列表
array get_grouped_servers()获取已经分组的服务器列表
array get_ungrouped_servers()获取未分组的服务器列表
bool assure_group(string group_id, map group_data)确认一个平衡组数据存在(平衡组数据如果存在,则不重复创建;如果存在,则自动创建)
bool delete_group(string group_id)删除一个平衡组
bool set_group_attribs(string group_id, map kv_pairs)设置平衡组属性
bool remove_from_group(string server_id)从平衡组中移除指定服务器
bool add_into_group(string group_id, string server_id)将服务器加入平衡组中
void sync_all_groups(...)同步所有平衡组数据

server_listd.gs

维护服务器列表的功能模块

函数原型函数作用
void notify_refresh()通知同步服务器列表
void set_gs_attrib(string server_id, string key, mixed value)设置服务器属性
void remove_gs(string server_id)移除服务器数据
array get_last_sync_info()调式接口 - 获取最近一次的同步信息
void debug_remove_all()调式接口 - 移除所有服务器数据
map get_gs_simple(string server_id)获取服务器的简要数据
map get_gs(string server_id)获取服务器的完整数据
map get_all_gs_simple()获取所有服务器的简要数据
map get_all_gs()获取所有服务器的完整数据
void debug_reset_all(map datas = )调式接口 - 重置所有服务器数据
void update_gs(string server_id, map server_data)更新服务器数据
void sync_all_gs(...)同步所有服务器数据
map filter_servers_by_field(map server_infos, string field, string value)根据字段值过滤服务器数据
bool is_gs_online(string server_id)判断服务器是否在线
int get_gs_total(string server_id)获取服务器总在线人数
void iterate_gs(function func)遍历所有服务器

gateway.gs

业务模块的入口文件

函数原型函数作用
void boot()启动
void shutdown()关闭

add_into_balance_group.gs

HTTP命令对象:添加服务器到平衡组

函数原型函数作用
void main(object req, object res)命令处理函数

create_balance_group.gs

HTTP命令处理对象: 创建平衡组

函数原型函数作用
void main(object req, object res)命令处理函数

destroy_balance_group.gs

HTTP命令处理对象: 删除平衡组

函数原型函数作用
void main(object req, object res)命令处理函数

list_account_servers.gs

HTTP命令处理对象: 获取账号在所有服务器上的角色缓存列表

函数原型函数作用
void main(object req, object res)命令处理函数

list_balance_groups.gs

HTTP命令处理对象: 列出所有平衡组

函数原型函数作用
void main(object req, object res)命令处理函数

list_recommend_servers.gs

HTTP命令处理对象: 列出推荐服务器

函数原型函数作用
void main(object req, object res)命令处理函数

list_servers.gs

HTTP命令处理对象:列出所有服务器

函数原型函数作用
void main(object req, object res)命令处理函数

list_server_field_values.gs

HTTP命令处理对象: 列出服务器列表中某个字段正在使用的所有取值(不重复)

函数原型函数作用
void main(object req, object res)命令处理函数

list_ungrouped_servers.gs

HTTP命令处理对象: 列出未分组的服务器

函数原型函数作用
void main(object req, object res)命令处理函数

list_visible_servers.gs

HTTP命令处理对象:列出所有可见的服务器

函数原型函数作用
void main(object req, object res)命令处理函数

query_account.gs

HTTP命令处理对象: 查询账号在服务器的角色缓存列表

函数原型函数作用
void main(object req, object res)命令处理函数

query_server.gs

HTTP命令处理对象: 查询服务器信息

函数原型函数作用
void main(object req, object res)命令处理函数

remove_from_balance_group.gs

HTTP命令处理对象:从平衡组中移除服务器

函数原型函数作用
void main(object req, object res)命令处理函数

set_balance_group_attribs.gs

HTTP命令处理对象: 设置平衡组属性

函数原型函数作用
void main(object req, object res)命令处理函数

list_server.gs

函数原型函数作用
void setup(string config_file)嵌入模式下目录服务器的初始化接口

preimport.gs

预导入文件

函数原型函数作用
void set_embedded_mode(bool flag_embedded)设置为嵌入模式(作为模块嵌入时使用)
bool is_embedded_mode()当前是否为嵌入模式

样例


[参考文档](https://leiting.feishu.cn/wiki/KLzMw2gt3iBCdRktNZPcBhEenuc)