跳到正文
Yayin Story Studio Yayin Story Studio 项目文档

Visindigo::Network::WebSocketRequest Class

class Visindigo::Network::WebSocketRequest

WebSocket 连接描述对象. 详情...

头文件: #include <Network/WebSocketRequest.h>
自以下版本: Visindigo 0.17.0

公开成员函数

(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setAutoReconnect(bool enabled, qint32 maxAttempts = 5)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setHeader(const QString &key, const QString &value)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setHeartbeatMs(qint32 ms)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setMaxMessageBytes(qint64 bytes)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setSubProtocol(const QString &protocol)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setUrl(const QUrl &url)
(自 Visindigo 0.17.0 引入) Visindigo::Network::WebSocketRequest &setVerifyTls(bool verify)

详细说明

协议栈仍然由 Qt 的 QWebSocket 承担,本类只承载连接参数与重连策略, 因此它和 HTTP 请求一样是纯值类型,可以自由拷贝。

Note: WebSocket 握手完成后就不再是 HTTP 协议,因此本类不继承 Visindigo::Network::HttpRequest。两者共享的只有"发起之前"的那一小段 握手请求,强行拉平继承关系反而会带来一批对 WebSocket 毫无意义的接口。

成员函数文档

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setAutoReconnect(bool enabled, qint32 maxAttempts = 5)

设置意外断开后是否自动重连,以及最多尝试次数。 调用 close() 主动关闭不会触发重连。

enabled 是否自动重连。 maxAttempts 最多尝试次数。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setHeader(const QString &key, const QString &value)

设置握手请求携带的头部,常用于传递认证信息。

key 头名。 value 头值。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setHeartbeatMs(qint32 ms)

设置心跳间隔毫秒数,0 表示不发送心跳。

心跳的价值在于让中间设备保持连接:很多反向代理会静默回收长时间没有数据 的 TCP 连接,而 WebSocket 空闲时并不产生任何流量。定期发送 ping 可以让 连接在链路上始终表现为"活跃"。

ms 心跳间隔毫秒数;0 表示不发送心跳。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setMaxMessageBytes(qint64 bytes)

设置单条消息的字节上限,0 表示不限。超限的消息会被丢弃并触发错误, 避免单个恶意帧耗尽内存。

bytes 单条消息字节上限;0 表示不限。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setSubProtocol(const QString &protocol)

设置子协议名,会在握手时以 Sec-WebSocket-Protocol 发送。

protocol 子协议名。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setUrl(const QUrl &url)

设置连接地址。scheme 应为 ws 或 wss,wss 表示加密连接。

url 连接地址。

这个function 从 Visindigo 0.17.0 开始支持。

[since Visindigo 0.17.0] Visindigo::Network::WebSocketRequest &WebSocketRequest::setVerifyTls(bool verify)

设置是否校验证书,默认 true。

Warning: 关闭校验等同于放弃中间人防护,仅在明确受控的场景下使用。

verify 是否校验证书。

这个function 从 Visindigo 0.17.0 开始支持。