listserver_client
简介
作为客户端接入目录服务器listserver
本pkg做为连接listserver的客户端
组件接口
FListServerClientCmds.gs
目录服客户端命令接口组件
函数原型 | 函数作用 |
---|---|
ListServerClientCmdBase ping() | 新建一个发送客户端命令[ping]的class实例 |
ListServerClientCmdBase internal_add_account_cache() | 新建一个发送客户端命令[internal_add_account_cache]的class实例 |
ListServerClientCmdBase internal_add_server_to_balance_group() | 新建一个发送客户端命令[internal_add_server_to_balance_group]的class实例 |
ListServerClientCmdBase internal_get_all_gs() | 新建一个发送客户端命令[internal_get_all_gs]的class实例 |
ListServerClientCmdBase internal_get_server_field_values() | 新建一个发送客户端命令[internal_get_server_field_values]的class实例 |
ListServerClientCmdBase internal_remove_account_cache() | 新建一个发送客户端命令[internal_remove_account_cache]的class实例 |
ListServerClientCmdBase internal_update_account_cache() | 新建一个发送客户端命令[internal_update_account_cache]的class实例 |
ListServerClientCmdBase internal_update_gs() | 新建一个发送客户端命令[internal_update_gs]的class实例 |
listserver_client.gs
类
ListServerClientCmdBase
目录服客户端命令的基础class
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
cmd | string | nil | 可选 | 命令名称 |
client_ob | object | nil | 可选 | 客户端对象 |
成员方法
函数原型 | 函数作用 |
---|---|
bool send(map args) | 发送客户端命令(不等待结果) |
mixed send_request(map args, int timeout_seconds = -1) | 发送消息并且等待消息结果(阻塞等待) |
ListServerClientHttpRequest
客户端通过http接口访问目录服务器的基础class
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
host | string | nil | 可选 | 服务器主机地址 |
method | string | nil | 可选 | 接口名称 |
para | map | nil | 可选 | 接口参数 |
成员方法
函数原型 | 函数作用 |
---|---|
void set_host(string host) | 设置服务器主机地址 |
void set_method(string method) | 设置接口名称 |
void set_para(map para) | 设置接口参数 |
void append_para(string key, mixed value) | 追加接口参数 |
array request(map args = nil) | 发起http请求 |
样例
import pkg.listserver_client;
object client_ob = nil;
void create()
{
// 创建一个管理员权限的客户端
map para = {
"host" : "127.0.0.1",
"port" : 15701,
"port_recv_size" : 131072,
};
client_ob = listserver_client.create_client(para);
// 初始化,通过http协议访问
map http_para = {
"host" : "http://127.0.0.1:4567",
};
listserver_client.start_via_http(http_para);
}
// 通知listserver更新账号角色缓存
public void update_account_cache(object user)
{
map info = {
"name" : user.get_name(),
"mp_level" : user.get_level("mp"),
"hp_level" : user.get_level("hp"),
};
map args = {
"account_id" : user.get_account_id(),
"rid" : user.get_rid(),
"server_id" : SystemD.get_server_id(),
"info" : info,
};
client_ob.internal_update_account_cache().send(args);
}
public void update_gs_to_listserver()
{
map data = collect_update_data("online");
map args = {
"id" : SystemD.get_server_id(),
"data" : data,
};
client_ob.internal_update_gs().send(args);
}
// 列出推荐服务器
public mixed list_recommend_servers()
{
map para = {
};
let bool success, mixed result = listserver_client.list_recommend_servers().request(para);
if (! success)
return nil;
if (! result)
return nil;
return result;
}