Visindigo::Network::StreamFrame Struct
struct Visindigo::Network::StreamFrame与具体协议无关的流帧. 详情...
| 头文件: | #include <Network/HttpTypes.h> |
| 自以下版本: | Visindigo 0.17.0 |
公开成员函数
(自 Visindigo 0.17.0 引入) bool | isValid() const |
详细说明
请求中心不关心帧来自哪种文本流格式,只负责把字节流切成帧, 切分规则由 IStreamDecoder 的实现决定:
- SSE(W3C text/event-stream):
Event为event:字段(可能为空),Data为多行data:字段拼接后的结果,Id与RetryMs对应id:与retry:字段。 - NDJSON(JSON Lines):
Event、Id、RetryMs均为空,Data为整行内容。
Note: 本结构不含任何厂商语义。诸如 "data: [DONE]" 这类结束约定由上层协议 实现自行判断,中心与解码器均不关心,这是为了保证本模块对各家服务保持中立。
成员函数文档
[since Visindigo 0.17.0] bool StreamFrame::isValid() const
判断本帧是否携带了有效内容,即 Event 或 Data 至少有一个非空。
之所以两者都算,是因为标准允许只带事件名的帧(例如 "event: ping"), 这种帧没有数据体但依然是有意义的心跳信号,不应被当作空帧丢弃。
return 本帧是否携带有效内容。
这个function 从 Visindigo 0.17.0 开始支持。