NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
websocket_server类 参考

WebSocket服务器类 更多...

#include <websocket.hpp>

Public 类型

using session_ptr = shared_ptr<websocket_session>
 会话智能指针类型
using session_handler = function<void(session_ptr)>
 会话处理器类型

Public 成员函数

void route (const string &path, session_handler handler)
 注册WebSocket路由
bool handle_upgrade (const http_request &request, unique_ptr< tcp_socket > sock)
 处理WebSocket升级请求
void remove_session (const session_ptr &session)
 移除会话
void broadcast (const string &data, websocket_opcode opcode=websocket_opcode::TEXT)
 向所有会话广播消息
size_t session_count () const noexcept
 获取活动会话数量

详细描述

WebSocket服务器类

管理WebSocket路由和会话,处理协议升级请求。

使用示例:

websocket_server ws_server;
ws_server.route("/chat", [](websocket_server::session_ptr session) {
session->set_message_handler([](const string& msg, websocket_opcode opcode) {
println("Received: ", msg);
session->send("Echo: " + msg);
});
});
// 在HTTP服务器中处理升级请求
if (request.method == http_method::GET() && request.header("Upgrade") == "websocket") {
if (ws_server.handle_upgrade(request, move(socket))) {
return; // 连接已升级为WebSocket
}
}
void route(const string &path, session_handler handler)
注册WebSocket路由
bool handle_upgrade(const http_request &request, unique_ptr< tcp_socket > sock)
处理WebSocket升级请求
shared_ptr< websocket_session > session_ptr
会话智能指针类型
bool send(const string &data, websocket_opcode opcode=websocket_opcode::TEXT)
发送文本/二进制消息
void set_message_handler(message_handler handler)
设置消息处理器
void println(Args &&... args)
打印多个值并换行
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
websocket_opcode
WebSocket帧操作码
static const http_method & GET()
GET方法

在文件 websocket.hpp131 行定义.

成员函数说明

◆ broadcast()

void websocket_server::broadcast ( const string & data,
websocket_opcode opcode = websocket_opcode::TEXT )

向所有会话广播消息

参数
data消息数据
opcode操作码(默认TEXT)

引用了 data() , 以及 TEXT.

◆ handle_upgrade()

bool websocket_server::handle_upgrade ( const http_request & request,
unique_ptr< tcp_socket > sock )

处理WebSocket升级请求

参数
requestHTTP升级请求
sock已建立的TCP/SSL socket
返回
成功创建会话返回true,未找到对应路由返回false

◆ remove_session()

void websocket_server::remove_session ( const session_ptr & session)

移除会话

参数
session要移除的会话

◆ route()

void websocket_server::route ( const string & path,
session_handler handler )
inline

注册WebSocket路由

参数
path路由路径
handler会话处理器

在文件 websocket.hpp156 行定义.

引用了 move() , 以及 route().

被这些函数引用 route().

◆ session_count()

size_t websocket_server::session_count ( ) const
inlinenoexcept

获取活动会话数量

返回
会话数量

在文件 websocket.hpp183 行定义.


该类的文档由以下文件生成: