ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::server_session Class Reference

服务端会话管理兼容层及便捷查询接口。 More...

#include <server_session.h>

Static Public Member Functions

static void add (i32_serverid aserverid, i32_sessionid asession)
 注册或替换绑定到远程服务器ID的会话。
static void remove (i32_sessionid asession)
 移除已断开会话的映射。
static i32_sessionid sessionid (i32_serverid aserverid)
 解析远程服务器的活跃会话ID。
static i32_sessionid sessionid (i32_serverid aserverid, i64_actorid aactorid)
 按 actor_id hash 选择连接。
static i32_serverid serverid (i32_sessionid asessionid)
 解析活跃会话的远程服务器ID。
static bool serverinfobysession (i32_sessionid asessionid, std::pair< str_servername, i32_serverid > &apair)
 一次调用同时解析会话所有者及其可读名称。

Detailed Description

服务端会话管理兼容层及便捷查询接口。

该类作为兼容层,主要路由职责已由 server_session_pool 承担。 本类作为兼容层,提供便捷查询接口。注:内部状态管理与server_session_pool功能重叠,后续优化应移除冗余映射,使之成为纯委托接口。 主要功能包括:

  • 根据服务器ID查找对应的网络会话
  • 根据网络会话查找对应的服务器ID
  • 支持按Actor ID进行连接选择(用于负载均衡)
  • 提供服务器信息查询功能
Note
该类不可实例化,所有方法都是静态的。
使用读写锁保护静态映射表,支持并发访问。

Member Function Documentation

◆ add()

void ngl::server_session::add ( i32_serverid aserverid,
i32_sessionid asession )
static

注册或替换绑定到远程服务器ID的会话。

Parameters
aserverid远程服务器ID
asession网络会话ID

◆ remove()

void ngl::server_session::remove ( i32_sessionid asession)
static

移除已断开会话的映射。

Parameters
asession要移除的会话ID

◆ serverid()

i32_serverid ngl::server_session::serverid ( i32_sessionid asessionid)
static

解析活跃会话的远程服务器ID。

Parameters
asessionid网络会话ID
Returns
对应的服务器ID,如果不存在返回-1

◆ serverinfobysession()

bool ngl::server_session::serverinfobysession ( i32_sessionid asessionid,
std::pair< str_servername, i32_serverid > & apair )
static

一次调用同时解析会话所有者及其可读名称。

Parameters
asessionid网络会话ID
apair输出参数,存储服务器名称和服务器ID
Returns
查询成功返回true,否则返回false

◆ sessionid() [1/2]

i32_sessionid ngl::server_session::sessionid ( i32_serverid aserverid)
static

解析远程服务器的活跃会话ID。

委托到 server_session_pool,取默认连接。

Parameters
aserverid远程服务器ID
Returns
对应的会话ID,如果不存在返回-1

◆ sessionid() [2/2]

i32_sessionid ngl::server_session::sessionid ( i32_serverid aserverid,
i64_actorid aactorid )
static

按 actor_id hash 选择连接。

委托到 server_session_pool,用于负载均衡。

Parameters
aserverid远程服务器ID
aactoridActor ID,用于哈希选择
Returns
选择的会话ID,如果不存在返回-1

The documentation for this class was generated from the following files: