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

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):Eventevent: 字段(可能为空), Data 为多行 data: 字段拼接后的结果,IdRetryMs 对应 id:retry: 字段。
  • NDJSON(JSON Lines):EventIdRetryMs 均为空,Data 为整行内容。

Note: 本结构不含任何厂商语义。诸如 "data: [DONE]" 这类结束约定由上层协议 实现自行判断,中心与解码器均不关心,这是为了保证本模块对各家服务保持中立。

成员函数文档

[since Visindigo 0.17.0] bool StreamFrame::isValid() const

判断本帧是否携带了有效内容,即 EventData 至少有一个非空。

之所以两者都算,是因为标准允许只带事件名的帧(例如 "event: ping"), 这种帧没有数据体但依然是有意义的心跳信号,不应被当作空帧丢弃。

return 本帧是否携带有效内容。

这个function 从 Visindigo 0.17.0 开始支持。