STTNet 0.7.0
载入中...
搜索中...
未找到
stt::network::WebSocketServer类 参考

WebSocketServer服务端操作类 更多...

#include <sttnet.h>

类 stt::network::WebSocketServer 继承关系图:
stt::network::TcpServer

Public 成员函数

void putTask (const std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> &fun, WebSocketServerFDHandler &k, WebSocketFDInformation &inf)
 把一个任务放入工作线程池由工作线程完成
 
 WebSocketServer (const unsigned long long &maxFD=1000000, const int &buffer_size=256, const size_t &finishQueue_cap=65536, const bool &security_open=true, const int &connectionNumLimit=5, const int &connectionSecs=10, const int &connectionTimes=3, const int &requestSecs=1, const int &requestTimes=10, const int &checkFrequency=60, const int &connectionTimeout=120)
 构造函数,默认是允许最大1000000个连接,每个连接接收缓冲区最大为256kb,启用安全模块。
 
void setSecuritySendBackFun (std::function< void(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc)
 设置违反信息安全策略时候的返回函数
 
void setGlobalSolveFunction (std::function< bool(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc)
 设置全局备用函数
 
void setStartFunction (std::function< bool(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fccc)
 设置websocket连接成功后就执行的回调函数 注册一个回调函数
 
void setJudgeFunction (std::function< bool(WebSocketFDInformation &k)> fcc)
 设置websocket握手阶段的检查函数,只有检查通过才执行后续握手 注册一个回调函数
 
void setFunction (const std::string &key, std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc)
 设置key对应的收到客户端消息后的回调函数
 
void setGetKeyFunction (std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> parseKeyFun)
 设置解析出key的回调函数
 
void setTimeOutTime (const int &seca)
 设置心跳时间
 
void setHBTimeOutTime (const int &secb)
 设置发送心跳后的等待时间
 
bool closeFD (const int &fd, const std::string &closeCodeAndMessage)
 发送关闭帧关闭对应套接字的 WebSocket 连接(简化方式)
 
bool closeFD (const int &fd, const short &code=1000, const std::string &message="bye")
 发送关闭帧关闭对应套接字的 WebSocket 连接(标准方式)
 
bool sendMessage (const int &fd, const std::string &msg, const std::string &type="0001")
 发送 WebSocket 消息给某一个客户端
 
bool close () override
 关闭监听和所有连接
 
bool close (const int &fd) override
 关闭某个套接字的连接
 
bool startListen (const int &port, const int &threads=8)
 打开Websocket服务器监听程序
 
void sendMessage (const std::string &msg, const std::string &type="0001")
 广播发送 WebSocket 消息
 
 ~WebSocketServer ()
 WebSocketServer的析构函数
 
- Public 成员函数 继承自 stt::network::TcpServer
void putTask (const std::function< int(TcpFDHandler &k, TcpInformation &inf)> &fun, TcpFDHandler &k, TcpInformation &inf)
 把一个任务放入工作线程池由工作线程完成
 
 TcpServer (const unsigned long long &maxFD=1000000, const int &buffer_size=256, const size_t &finishQueue_cap=65536, const bool &security_open=true, const int &connectionNumLimit=20, const int &connectionSecs=1, const int &connectionTimes=6, const int &requestSecs=1, const int &requestTimes=40, const int &checkFrequency=60, const int &connectionTimeout=60)
 构造函数,默认是允许最大1000000个连接,每个连接接收缓冲区最大为256kb,启用安全模块。
 
bool startListen (const int &port, const int &threads=8)
 打开Tcp服务器监听程序
 
bool setTLS (const char *cert, const char *key, const char *passwd, const char *ca)
 以兼容模式启用双向 TLS(mTLS)。
 
bool setTLS (const char *cert, const char *key, const char *passwd="")
 启用普通单向 TLS,适用于常见 HTTPS/WSS 服务。
 
bool setTLS (const char *cert, const char *key, const char *passwd, const char *ca, TLSClientAuthMode clientAuth)
 启用 TLS 并显式选择客户端证书校验模式。
 
void redrawTLS ()
 撤销TLS加密,ca证书等
 
void setSecuritySendBackFun (std::function< void(TcpFDHandler &k, TcpInformation &inf)> fc)
 设置违反信息安全策略时候的返回函数
 
void setGlobalSolveFunction (std::function< bool(TcpFDHandler &k, TcpInformation &inf)> fc)
 设置全局备用函数
 
void setFunction (const std::string &key, std::function< int(TcpFDHandler &k, TcpInformation &inf)> fc)
 设置key对应的收到客户端消息后的回调函数
 
void setGetKeyFunction (std::function< int(TcpFDHandler &k, TcpInformation &inf)> parseKeyFun)
 设置解析出key的回调函数
 
bool stopListen ()
 停止监听
 
void setConnectStrategy (const stt::security::RateLimitType &type)
 设置“连接速率限流”所使用的策略。
 
void setRequestStrategy (const stt::security::RateLimitType &type)
 设置“IP 级请求限流”所使用的策略。
 
void setPathStrategy (const stt::security::RateLimitType &type)
 设置“path 级请求限流”所使用的策略。
 
void setPathLimit (const std::string &path, const int &times, const int &secs)
 设置某个路径的额外限流规则(path 级)。
 
void setCloseFun (std::function< void(const int &fd)> closeFun)
 设置关闭tcp连接之后调用的函数
 
void setMaxPendingWriteBytes (const size_t bytes)
 设置每连接待发送数据高水位。
 
void setWriteBudgetPerEvent (const size_t bytes)
 设置 Reactor 单次处理一个连接的最大发送字节数。
 
void setMaxHttpHeaderBytes (const size_t bytes)
 设置 HTTP 请求和 WebSocket 握手头上限。
 
void setMaxPendingWorkerTasks (const size_t tasks)
 设置 WorkerPool 尚未开始执行的任务上限。
 
void setReactorMessageBudgets (const size_t workerCompletions, const size_t sendReadyNotifications)
 设置单次 Reactor 唤醒处理的跨线程消息预算。
 
void setSocketOptions (const ServerSocketOptions &options)
 设置新接收 TCP 连接的常用套接字参数。
 
void setGracefulShutdownTimeout (const size_t milliseconds)
 设置 close()/stopListen() 等待在途请求和发送队列排空的最长时间。
 
ServerMetricsSnapshot getMetrics () const noexcept
 获取服务器运行指标快照。
 
bool isListen ()
 返回对象的监听状态
 
int getListenPort () const noexcept
 获取当前实际监听端口。
 
SSL * getSSL (const int &fd)
 查询和服务端的连接,传入套接字,返回加密的SSL句柄
 
virtual ~TcpServer ()
 TcpServer 类的析构函数
 

额外继承的成员函数

- Protected 类型 继承自 stt::network::TcpServer
enum class  WriteFlushResult {
  Drained , WaitWrite , WaitRead , Reschedule ,
  Error
}
 
- Protected 成员函数 继承自 stt::network::TcpServer
int enqueueWrite (const std::shared_ptr< ConnectionWriteState > &state, std::string data)
 
void requestQueuedClose (const std::shared_ptr< ConnectionWriteState > &state)
 
void requestCloseAfterFlush (const int &fd, const uint64_t expectedConnection=0)
 
void publishSendReady (const std::shared_ptr< ConnectionWriteState > &state)
 
void notifyReactor () noexcept
 
bool hasPendingReactorWork ()
 
void clearReactorQueues ()
 
void drainReactorWork (const int &epollFD)
 
size_t drainWorkerResults (const size_t budget)
 
size_t drainSendReady (const int &epollFD, const size_t budget)
 
void applyAcceptedSocketOptions (const int &acceptedFD) const noexcept
 
void reportReactorStartup (const bool success)
 
void advanceGracefulDrain ()
 
void prepareHandler (TcpFDHandler &handler, const int &fd)
 
void prepareQueuedHandler (TcpFDHandler &handler, const int &fd)
 
void prepareQueuedHandler (TcpFDHandler &handler, const int &fd, const uint64_t expectedConnection)
 
WriteFlushResult flushConnectionWrites (TcpFDInf &connection)
 
bool updateConnectionEvents (const int &epollFD, TcpFDInf &connection, const bool &wantWrite)
 
void handleSendReady (const int &epollFD, SendReadyMessage message)
 
void publishWorkerResult (WorkerMessage message)
 
void scheduleBufferedRead (const int &fd, const uint64_t connection)
 
- Protected 属性 继承自 stt::network::TcpServer
system::MPSCQueue< WorkerMessagefinishQueue
 
system::MPSCQueue< SendReadyMessagesendReadyQueue
 
stt::system::WorkerPoolworkpool =nullptr
 
unsigned long buffer_size
 
unsigned long long maxFD
 
security::ConnectionLimiter connectionLimiter
 
std::unordered_map< int, TcpFDInfclientfd
 
std::atomic< bool > flag1 {false}
 
bool unblock
 
SSL_CTX * ctx =nullptr
 
bool TLS =false
 
std::mutex tlsContextMutex
 
bool security_open
 
std::atomic< int > workerEventFD {-1}
 
std::atomic< bool > workerWakePending {false}
 
std::recursive_mutex lifecycleMutex
 
std::thread reactorThread
 
std::mutex reactorStartupMutex
 
std::condition_variable reactorStartupCV
 
bool reactorStartupComplete =false
 
bool reactorStartupSuccess =false
 
std::atomic< bool > gracefulDrainRequested {false}
 
std::mutex gracefulShutdownMutex
 
std::condition_variable gracefulShutdownCV
 
std::mutex overflowFinishMutex
 
std::deque< WorkerMessageoverflowFinishQueue
 
std::mutex overflowSendReadyMutex
 
std::deque< SendReadyMessageoverflowSendReadyQueue
 
std::mutex writeRegistryMutex
 
std::unordered_map< int, std::weak_ptr< ConnectionWriteState > > writeRegistry
 
std::deque< SendReadyMessagebufferedReadQueue
 
std::deque< SendReadyMessagetimeoutCandidates
 
int serverType
 
int connectionSecs
 
int connectionTimes
 
int requestSecs
 
int requestTimes
 
int checkFrequency
 
uint64_t connection_obj_fd
 
size_t maxPendingWriteBytes =4UL*1024UL*1024UL
 
size_t writeBudgetPerEvent =256UL*1024UL
 
size_t maxHttpHeaderBytes =64UL*1024UL
 
size_t maxPendingWorkerTasks =65536
 
size_t workerCompletionBudgetPerWake =2048
 
size_t sendReadyBudgetPerWake =256
 
size_t gracefulShutdownTimeoutMs =5000
 
ServerSocketOptions socketOptions
 
std::atomic< uint64_t > metricAcceptedConnections {0}
 
std::atomic< uint64_t > metricActiveConnections {0}
 
std::atomic< uint64_t > metricClosedConnections {0}
 
std::atomic< uint64_t > metricRejectedConnections {0}
 
std::atomic< uint64_t > metricAcceptErrors {0}
 
std::atomic< uint64_t > metricTLSHandshakeFailures {0}
 
std::atomic< uint64_t > metricParsedHttpRequests {0}
 
std::atomic< uint64_t > metricQueuedWriteBytes {0}
 
std::atomic< uint64_t > metricSentBytes {0}
 
std::atomic< uint64_t > metricPendingWriteBytes {0}
 
std::atomic< uint64_t > metricPeakPendingWriteBytes {0}
 
std::atomic< uint64_t > metricPeakPendingWorkerTasks {0}
 
std::atomic< uint64_t > metricWriteOverflows {0}
 
std::atomic< uint64_t > metricWorkerQueueOverflows {0}
 
std::atomic< uint64_t > metricSendReadyQueueOverflows {0}
 
std::atomic< uint64_t > metricWorkerTaskRejections {0}
 
std::atomic< uint64_t > metricReactorWakeups {0}
 
std::atomic< uint64_t > metricReactorWakeupsCoalesced {0}
 
std::atomic< uint64_t > metricWriteSyscalls {0}
 
std::atomic< uint64_t > metricBatchedWriteSyscalls {0}
 
std::atomic< uint64_t > metricBatchedWriteBuffers {0}
 
std::atomic< uint64_t > metricIdleTimeoutChecks {0}
 
std::atomic< uint64_t > metricIdleTimeoutCloses {0}
 
std::atomic< uint64_t > metricGracefulShutdownTimeouts {0}
 

详细描述

WebSocketServer服务端操作类

参见
WebSocket Echo 最小示例

构造及析构函数说明

◆ WebSocketServer()

stt::network::WebSocketServer::WebSocketServer ( const unsigned long long & maxFD = 1000000,
const int & buffer_size = 256,
const size_t & finishQueue_cap = 65536,
const bool & security_open = true,
const int & connectionNumLimit = 5,
const int & connectionSecs = 10,
const int & connectionTimes = 3,
const int & requestSecs = 1,
const int & requestTimes = 10,
const int & checkFrequency = 60,
const int & connectionTimeout = 120 )
inline

构造函数,默认是允许最大1000000个连接,每个连接接收缓冲区最大为256kb,启用安全模块。

注解
打开安全模块会对性能有影响
参数
maxFD服务对象的最大接受连接数 默认为1000000
buffer_size同一个连接允许传输的最大数据量(单位为kb) 默认为256kb
finishQueue_capWorker 完成队列(Worker → Reactor)的容量,必须为 2 的幂。
注解
建议容量不小于“峰值完成速率 × Reactor 最坏暂停时间”;环形队列满时进入带锁后备队列。
参数
security_opentrue:开启安全模块 false:关闭安全模块 (默认为开启)
connectionNumLimit同一个ip连接数目的上限(默认5)
connectionSecs连接速率统计窗口长度(单位:秒)(默认10秒)
connectionTimes在 connectionSecs 秒内允许的最大连接次数 (默认3次)
requestSecs请求速率统计窗口长度(单位:秒)(默认1秒)
requestTimes在秒requestSecs内允许的最大请求数量(默认10次)
checkFrequency检查僵尸连接的频率(单位:秒) -1为不做检查 (默认为60秒)
connectionTimeout连接多少秒内没有任何反应就视为僵尸连接 (单位为秒) -1为无限制 (默认120秒)

◆ ~WebSocketServer()

stt::network::WebSocketServer::~WebSocketServer ( )
inline

WebSocketServer的析构函数

注解
销毁对象的时候会阻塞直到全部连接和监听等全部关闭

成员函数说明

◆ close() [1/2]

bool stt::network::WebSocketServer::close ( )
overridevirtual

关闭监听和所有连接

注解
会阻塞直到全部关闭

重载 stt::network::TcpServer .

◆ close() [2/2]

bool stt::network::WebSocketServer::close ( const int & fd)
overridevirtual

关闭某个套接字的连接

注解
直接关闭底层 TCP 连接;需要协议级关闭握手时使用 closeFD()

重载 stt::network::TcpServer .

◆ closeFD() [1/2]

bool stt::network::WebSocketServer::closeFD ( const int & fd,
const short & code = 1000,
const std::string & message = "bye" )

发送关闭帧关闭对应套接字的 WebSocket 连接(标准方式)

传入套接字fd然后关闭连接 构建符合 RFC 6455 的关闭帧(opcode = 0x8),帧 payload 包含关闭码(2 字节)与可选关闭原因字符串。

参数
fd套接字fd
codeWebSocket 关闭码,常见包括:
  • 1000:正常关闭(Normal Closure)
  • 1001:终端离开(Going Away)
  • 1002:协议错误(Protocol Error)
  • 1003:不支持的数据类型(Unsupported Data)
  • 1006:非正常关闭(无关闭帧,程序内部使用)
  • 1008:策略违规(Policy Violation)
  • 1011:服务器内部错误(Internal Error)
message可选关闭原因,供调试或日志记录用
返回
true:关闭成功 false:关闭失败

◆ closeFD() [2/2]

bool stt::network::WebSocketServer::closeFD ( const int & fd,
const std::string & closeCodeAndMessage )

发送关闭帧关闭对应套接字的 WebSocket 连接(简化方式)

传入套接字fd然后关闭连接 直接传入编码后的关闭 payload,其中前两字节为关闭码(big-endian), 后续为 UTF-8 编码的关闭原因描述,用于简化调用。

参数
fd套接字fd
closeCodeAndMessage编码后的关闭帧 payload(2 字节关闭码 + 可选消息)
返回
true:关闭成功 false:关闭失败

◆ putTask()

void stt::network::WebSocketServer::putTask ( const std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> & fun,
WebSocketServerFDHandler & k,
WebSocketFDInformation & inf )

把一个任务放入工作线程池由工作线程完成

注解
应当把速度慢、会阻塞的io任务放入工作线程池
警告
可执行对象必须严格按照规定的返回值返回
参数
fun放入工作线程池的可执行对象 -参数:WebSocketServerFDHandler &k - 和客户端连接的套接字的操作对象的引用 WebSocketFDInformation &inf - 客户端信息,保存数据,处理进度,状态机信息等 -返回值:-2:处理失败并且需要关闭连接 -1:处理失败但不需要关闭连接 1:处理成功
k和客户端连接的套接字的操作对象的引用
inf客户端信息的引用,保存数据,处理进度,状态机信息等
注解
本函数仅应从该连接的 Reactor 回调中调用。过载拒绝会按失败完成消息关闭连接,并计入 worker_task_rejections。

◆ sendMessage() [1/2]

bool stt::network::WebSocketServer::sendMessage ( const int & fd,
const std::string & msg,
const std::string & type = "0001" )

发送 WebSocket 消息给某一个客户端

根据 WebSocket 协议,封装并提交一条服务端数据帧(服务端帧不使用掩码), 支持根据 payload 长度自动选择帧格式:

  • payload <= 125 字节:使用 1 字节长度
  • 126 <= payload <= 65535:使用 2 字节扩展长度(附加 126 标记)
  • payload > 65535:使用 8 字节扩展长度(附加 127 标记)
参数
fd和客户端连接的套接字
msg要发送的消息内容(已编码为文本或二进制)
type指定消息类型的自定义字段(通常是 WebSocket 帧的 opcode) 约定格式为 "1000" + type,其中:
  • "0001" 表示文本帧(Text Frame)
  • "0010" 表示二进制帧(Binary Frame)
  • "1000" 表示连接关闭(Close Frame)
  • "1001" 表示 Ping 帧
  • "1010" 表示 Pong 帧 请根据内部约定使用,默认使用 text(文本帧)
返回
true 帧已被该连接的有界发送队列接受。
false 连接无效、代次已变化、类型/控制帧长度无效或队列超过高水位。

◆ sendMessage() [2/2]

void stt::network::WebSocketServer::sendMessage ( const std::string & msg,
const std::string & type = "0001" )

广播发送 WebSocket 消息

给全体客户端广播发送消息 根据 WebSocket 协议,为每个仍有效的连接提交一条不带掩码的服务端帧, 支持根据 payload 长度自动选择帧格式:

  • payload <= 125 字节:使用 1 字节长度
  • 126 <= payload <= 65535:使用 2 字节扩展长度(附加 126 标记)
  • payload > 65535:使用 8 字节扩展长度(附加 127 标记)
参数
msg要发送的消息内容(已编码为文本或二进制)
type指定消息类型的自定义字段(通常是 WebSocket 帧的 opcode) 约定格式为 "1000" + type,其中:
  • "0001" 表示文本帧(Text Frame)
  • "0010" 表示二进制帧(Binary Frame)
  • "1000" 表示连接关闭(Close Frame)
  • "1001" 表示 Ping 帧
  • "1010" 表示 Pong 帧 请根据内部约定使用,默认使用 text(文本帧)
注解
单个慢客户端超过发送高水位时会被隔离关闭,不会让广播线程直接阻塞在 socket/SSL 写入上。

◆ setFunction()

void stt::network::WebSocketServer::setFunction ( const std::string & key,
std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc )
inline

设置key对应的收到客户端消息后的回调函数

注解
可以设置多个 ,框架会根据设置顺序依次执行回调函数;也可以设置扔入工作线程池处理的流程,注意设置不同的返回值即可。
警告
可执行对象必须严格按照规定的返回值返回
参数
key找到对应回调函数的key
fc一个函数或函数对象,用于收到客户端消息后处理逻辑 -参数:WebSocketServerFDHandler &k - 和客户端连接的套接字的操作对象的引用 WebSocketFDInformation &inf - 客户端信息,保存数据,处理进度,状态机信息等 -返回值:-2:处理失败并且需要关闭连接 -1:处理失败但不需要关闭连接 0:处理流程已经扔入工作线程池,需要等待处理完成 1:处理成功
s->setFunction("ping",[](WebSocketServerFDHandler &k,WebSocketFDInformation &inf)->int
{
k.sendMessage("pong");
return 1;
});
WebSocket协议的操作类 仅传入套接字,然后使用这个类进行WebSocket的操作
定义 sttnet.h:4163
bool sendMessage(const std::string &msg, const std::string &type="0001")
发送一条websocket信息
保存客户端WS/WSS请求信息的结构体
定义 sttnet.h:3295

◆ setGetKeyFunction()

void stt::network::WebSocketServer::setGetKeyFunction ( std::function< int(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> parseKeyFun)
inline

设置解析出key的回调函数

注解
根据传入的参数把key存入TcpInformation信息中的ctx哈希表。框架会根据key的值找到你注册的处理函数。
警告
可执行对象必须严格按照规定的返回值返回
参数
parseKeyFun解析key的回调函数 -参数:WebSocketServerFDHandler &k - 和客户端连接的套接字的操作对象的引用 WebSocketFDInformation &inf - 客户端信息,保存数据,处理进度,状态机信息等 -返回值:-2:处理失败并且需要关闭连接 -1:处理失败但不需要关闭连接 0:处理流程已经扔入工作线程池,需要等待处理完成 1:处理成功
s->setGetKeyFunction([](WebSocketServerFDHandler &k,WebSocketFDInformation &inf)->int
{
inf.ctx["key"]=inf.message;
return 1;
});
std::unordered_map< std::string, std::any > ctx
所需的数据仓库
定义 sttnet.h:3355
std::string message
消息
定义 sttnet.h:3339

◆ setGlobalSolveFunction()

void stt::network::WebSocketServer::setGlobalSolveFunction ( std::function< bool(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc)
inline

设置全局备用函数

注解
找不到对应回调函数的时候会调用全局备用函数
参数
fc一个函数或函数对象,用于收到客户端消息后处理逻辑 -参数:WebSocketServerFDHandler &k - 和客户端连接的套接字的操作对象的引用 WebSocketFDInformation &inf - 客户端信息,保存数据,处理进度,状态机信息等 -返回值:true:处理成功 false:处理失败 会关闭连接

◆ setHBTimeOutTime()

void stt::network::WebSocketServer::setHBTimeOutTime ( const int & secb)
inline

设置发送心跳后的等待时间

参数
secb发送心跳后的等待时间 单位为秒 不设置默认为30秒
注解
如果超过这个时间对端没有反应 关闭连接

◆ setJudgeFunction()

void stt::network::WebSocketServer::setJudgeFunction ( std::function< bool(WebSocketFDInformation &k)> fcc)
inline

设置websocket握手阶段的检查函数,只有检查通过才执行后续握手 注册一个回调函数

参数
fcc一个函数或函数对象,用于检查是否接受 WebSocket 握手 -参数:const WebSocketFDInformation &inf - Websocket服务端的信息 -返回值 : true:检查通过 false:检查不通过
注解
传入的函数应该有如下签名 bool func(const WebSocketFDInformation &k)
只有检查通过才执行后续握手,否则断开连接

◆ setSecuritySendBackFun()

void stt::network::WebSocketServer::setSecuritySendBackFun ( std::function< void(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fc)
inline

设置违反信息安全策略时候的返回函数

注解
违反信息安全策略时候的返回函数,调用完就关闭连接
参数
fc一个函数或函数对象,用于收到客户端消息后处理逻辑 -参数:WebSocketServerFDHandler &k - 和客户端连接的套接字的操作对象的引用 WebSocketFDInformation &inf - 客户端信息,保存数据,处理进度,状态机信息等 -返回值:true:处理成功 false:处理失败 会关闭连接

◆ setStartFunction()

void stt::network::WebSocketServer::setStartFunction ( std::function< bool(WebSocketServerFDHandler &k, WebSocketFDInformation &inf)> fccc)
inline

设置websocket连接成功后就执行的回调函数 注册一个回调函数

参数
fccc一个函数或函数对象,websocket连接成功后就执行 -参数:const WebSocketFDInformation &inf - Websocket服务端的信息 WebSocketServer &k - 服务端对象的引用
注解
传入的函数应该有如下签名 void func(const WebSocketFDInformation &inf,WebSocketServer &k)

◆ setTimeOutTime()

void stt::network::WebSocketServer::setTimeOutTime ( const int & seca)
inline

设置心跳时间

参数
seca心跳时间 单位为分钟。不设置默认为20分钟

◆ startListen()

bool stt::network::WebSocketServer::startListen ( const int & port,
const int & threads = 8 )
inline

打开Websocket服务器监听程序

参数
port监听的端口
threads消费者线程的数量 (默认为8)
返回
true:打开监听程序成功 false:打开监听程序失败

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