proxy_server
简介
代理服务器
代理服务器是一个为用户提供连接聚合服务的公共服务器
用户通过和代理服务器之间的一个长连接处理和多个不同目标服务器间的网络通讯
更详细的说明请参考: https://leiting.feishu.cn/wiki/wikcn1xIWFQ6OmFrX4v5yFhLXje
组件接口
common.gs
公共模块的启动/关闭流程处理
| 函数原型 | 函数作用 |
|---|---|
| void boot() | 启动 |
| void shutdown() | 关闭 |
FCmdBase.gs
指令处理器基础组件
| 函数原型 | 函数作用 |
|---|---|
| string cmd_name() | 获取指令处理器名称 |
| bool verify(object ob) | 验证指令处理器执行权限 |
| map FAILURE(int id, map info = ) | 生成一个表示失败的词典 |
| map SUCCESS(map result = ) | 生成一个表示成功的词典 |
| void send_resp(object ob, mixed cookie, mixed result) | 发送应答消息 |
FSessionCmd.gs
会话消息的处理器基础组件
| 函数原型 | 函数作用 |
|---|---|
| string cmd_name() | 获取指令处理器名称 |
| map FAILURE(int id, map info = ) | 生成一个表示失败的词典 |
| map SUCCESS(map result = ) | 生成一个表示成功的词典 |
| void send_resp(object ob, mixed cookie, mixed result) | 发送应答消息 |
config.gs
通用全局配置
| 函数原型 | 函数作用 |
|---|---|
| mixed get(string path) | 获取配置值 |
netd.gs
网络功能模块
| 函数原型 | 函数作用 |
|---|---|
| void start_server(string name, int port, map para = , bool using_websocket = false) | 启动网络服务 |
| void stop_server(string name) | 停止网络服务 |
Session.gs
会话对象
客户端到proxy server之间的连接是一个Session对象
Session和User是父子关系,一个Session下可以有多个User对象
Session的输入只来自客户端
| 函数原型 | 函数作用 |
|---|---|
| string desc() | 获取描述信息 |
| map get_info() | 获取本会话对象的信息词典 |
| bool redirect_user(string name, map connect_para, function prev_callback) | 将指定名称的User对象重定向到指定的目标服务器上 |
| bool create_user(string type, string name, map connect_para, string user_file = nil) | 创建一个连接目标服务器的User对象 |
| void destroy_user(string name, string reason, float delay_seconds = 1) | 销毁一个连接目标服务器的User对象 |
| void relay_to_user(string name, ...) | 将消息转发给指定的User对象 |
| void notify_user_disconnected(object user) | User对象通知: 连接断开了 |
| void bind_user(object user) | 绑定一个User对象 |
| void unbind_user(object user, string reason) | 解绑一个User对象 |
| void rebind_user(object new_user) | 重新绑定一个User对象 |
| array find_users(string type) | 查找指定用户类型的所有User对象 |
| object get_default_user() | 获取本对象的默认User对象 |
| void set_default_user(string name) | 设置默认User对象 |
| bool is_connected() | 是否已连接 |
| void bind_connection(object conn) | 绑定网络连接对象 |
| object unbind_connection() | 解除绑定当前网络连接对象 |
| void transfer_connection(object to) | 将当前网络连接对象传递给目标会话对象 |
| void send(string cmd, ...) | 发送网络消息 |