ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
asio_ws.h File Reference

基于Boost.Beast的WebSocket传输实现。 More...

#include "tools/tools/tools_thread.h"
#include "tools/serialize/pack.h"
#include "tools/log/nlog.h"
#include "net/asio_base.h"
#include <atomic>
#include <mutex>
#include <shared_mutex>
#include <unordered_map>
#include <memory>
#include <string>

Classes

struct  ngl::ws_tls_options
 TLS配置选项结构体。 More...
class  ngl::asio_ws
 基于Boost.Beast的WebSocket网络管理类。 More...

Typedefs

using ngl::ws_callback = std::function<bool(service_ws*, const char*, uint32_t)>
 WebSocket数据接收回调函数类型。
using ngl::ws_closecallback = std::function<void(i32_sessionid)>
 WebSocket连接关闭回调函数类型。
using ngl::ws_connectcallback = std::function<void(i32_sessionid)>
 WebSocket连接建立回调函数类型。
using ngl::ws_sendfinishcallback = std::function<void(i32_sessionid, bool, const pack*)>
 WebSocket发送完成回调函数类型。

Detailed Description

基于Boost.Beast的WebSocket传输实现。

本文件定义了WebSocket网络层的核心类asio_ws,提供以下功能:

  • WebSocket服务器的监听和接受连接
  • WebSocket客户端的连接建立
  • 支持普通WebSocket和TLS WebSocket(WSS)
  • WebSocket帧的异步读写
  • 网络会话的创建和管理
  • 连接关闭和资源清理

该类是WebSocket网络层的底层实现,为上层的nws类提供具体的网络操作支持。

Typedef Documentation

◆ ws_callback

using ngl::ws_callback = std::function<bool(service_ws*, const char*, uint32_t)>

WebSocket数据接收回调函数类型。

Parameters
service_ws*WebSocket服务对象指针
constchar* 接收到的数据缓冲区
uint32_t数据长度
Returns
bool 处理成功返回true,否则返回false

◆ ws_closecallback

using ngl::ws_closecallback = std::function<void(i32_sessionid)>

WebSocket连接关闭回调函数类型。

Parameters
i32_sessionid关闭的会话ID

◆ ws_connectcallback

using ngl::ws_connectcallback = std::function<void(i32_sessionid)>

WebSocket连接建立回调函数类型。

Parameters
i32_sessionid建立的会话ID

◆ ws_sendfinishcallback

using ngl::ws_sendfinishcallback = std::function<void(i32_sessionid, bool, const pack*)>

WebSocket发送完成回调函数类型。

Parameters
i32_sessionid发送的会话ID
bool发送是否成功
constpack* 发送的数据包指针