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

WebSocket服务会话类。 More...

#include <asio_base.h>

Inheritance diagram for ngl::service_ws:
ngl::service_io

Public Member Functions

 service_ws (serviceio_info &amsi, i32_session asessionid)
 构造普通WebSocket会话。
 service_ws (serviceio_info &amsi, i32_session asessionid, basio_sslcontext &acontext)
 构造TLS WebSocket会话。
basio_iptcpsocketsocket ()
 访问底层TCP套接字。
const basio_iptcpsocketsocket () const
 访问底层TCP套接字(const版本)。
bool using_tls () const
 检查是否使用TLS。
beast::flat_buffer & read_buffer ()
 获取读缓冲区。
void consume_read_buffer (std::size_t asize)
 消费读缓冲区数据。
template<typename TFUN>
decltype(auto) visit_stream (TFUN &&afun)
 访问WebSocket流(非const版本)。
template<typename TFUN>
decltype(auto) visit_stream (TFUN &&afun) const
 访问WebSocket流(const版本)。
Public Member Functions inherited from ngl::service_io
 service_io (serviceio_info &amsi, i32_session asessionid)
 构造函数。
char * buff ()
 在两个临时缓冲区间切换。

Additional Inherited Members

Public Attributes inherited from ngl::service_io
i32_threadid m_threadid = 0
 所属线程ID
i32_sessionid m_sessionid = 0
 会话ID
bool m_is_lanip = false
 是否为局域网IP
basio_ioservicem_ioservice
 关联的IO服务引用
npack_list m_npacklist
 数据包列表

Detailed Description

WebSocket服务会话类。

继承自service_io,提供WebSocket操作功能,支持普通和TLS两种模式。

Constructor & Destructor Documentation

◆ service_ws() [1/2]

ngl::service_ws::service_ws ( serviceio_info & amsi,
i32_session asessionid )

构造普通WebSocket会话。

Parameters
amsi服务IO信息引用
asessionid会话ID

◆ service_ws() [2/2]

ngl::service_ws::service_ws ( serviceio_info & amsi,
i32_session asessionid,
basio_sslcontext & acontext )

构造TLS WebSocket会话。

Parameters
amsi服务IO信息引用
asessionid会话ID
acontextSSL上下文引用

Member Function Documentation

◆ consume_read_buffer()

void ngl::service_ws::consume_read_buffer ( std::size_t asize)

消费读缓冲区数据。

Parameters
asize要消费的字节数

◆ read_buffer()

beast::flat_buffer & ngl::service_ws::read_buffer ( )

获取读缓冲区。

Returns
读缓冲区引用

◆ socket() [1/2]

basio_iptcpsocket & ngl::service_ws::socket ( )

访问底层TCP套接字。

Returns
TCP套接字引用

◆ socket() [2/2]

const basio_iptcpsocket & ngl::service_ws::socket ( ) const

访问底层TCP套接字(const版本)。

Returns
TCP套接字const引用

◆ using_tls()

bool ngl::service_ws::using_tls ( ) const

检查是否使用TLS。

Returns
使用TLS返回true,否则返回false

◆ visit_stream() [1/2]

template<typename TFUN>
decltype(auto) ngl::service_ws::visit_stream ( TFUN && afun)
inline

访问WebSocket流(非const版本)。

Template Parameters
TFUN访问函数类型
Parameters
afun访问函数
Returns
访问函数的返回值

◆ visit_stream() [2/2]

template<typename TFUN>
decltype(auto) ngl::service_ws::visit_stream ( TFUN && afun) const
inline

访问WebSocket流(const版本)。

Template Parameters
TFUN访问函数类型
Parameters
afun访问函数
Returns
访问函数的返回值

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