Visindigo::Network::WebSocketRequest Class
class Visindigo::Network::WebSocketRequest| 头文件: | #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 开始支持。