1#ifndef NEFORCE_NETWORK_HTTP_WEBSOCKET_DEFLATE_HPP__
2#define NEFORCE_NETWORK_HTTP_WEBSOCKET_DEFLATE_HPP__
13#ifdef NEFORCE_SUPPORT_ZLIB
16NEFORCE_BEGIN_NAMESPACE__
60#ifdef NEFORCE_SUPPORT_ZLIB
79 bool no_context_takeover_;
81 bool initialized_ =
false;
83 bool stream_finished_ =
false;
88 void ensure_initialized();
150NEFORCE_END_NAMESPACE__
string process(string_view data, bool is_final)
处理消息(压缩或解压)
websocket_deflate(bool compress, int window_bits, bool no_context_takeover)
构造压缩/解压器
void reset_context()
重置上下文(新消息开始时调用)
basic_string_view< char > string_view
字符字符串视图
constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
bool server_no_context_takeover
服务端是否禁用上下文接管(逐消息重置压缩器)
static websocket_deflate_config negotiate(string_view request_extensions)
从请求的 Sec-WebSocket-Extensions 头部解析并协商
bool client_no_context_takeover
客户端是否禁用上下文接管(逐消息重置压缩器)
int client_max_window_bits
客户端→服务端压缩窗口比特位 (8-15),默认15
string to_response_header() const
生成服务端响应头部值
int server_max_window_bits
服务端→客户端压缩窗口比特位 (8-15),默认15