xrtHttpSseEventValid
判断 Event 的视图、标志、UTF-8 和单行字段约束是否有效。
| 参数 | 说明 |
|---|---|
| const xhttpsseevent* pEvent | 事件 |
示例已编译验证
/* 判断 Event 的视图、标志、UTF-8 和单行字段约束是否有效。 */ result = xrtHttpSseEventValid(pEvent);
xrtHttpSseEventSize
精确计算规范 LF 封包长度;Size 可以未对齐,失败不修改。
| 参数 | 说明 |
|---|---|
| const xhttpsseevent* pEvent | 事件 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 精确计算规范 LF 封包长度;Size 可以未对齐,失败不修改。 */ result = xrtHttpSseEventSize(pEvent, pSize);
xrtHttpSseEventWrite
XRT_API bool xrtHttpSseEventWrite( const xhttpsseevent* pEvent, void* pOutput, size_t iCapacity, size_t* pSize );
示例已编译验证
/* XRT_API bool xrtHttpSseEventWrite( const xhttpsseevent* pEvent, void* pOutput, size_t iCapacity, size_t* pSize ); */ result = xrtHttpSseEventWrite();
xrtHttpSseEventBuild
构建零结尾事件块,返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| const xhttpsseevent* pEvent | 事件 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 构建零结尾事件块,返回值由 xrtFree 释放。 */ result = xrtHttpSseEventBuild(pEvent, pSize);
xrtHttpSseCommentSize
精确计算规范注释心跳长度;Comment 可以包含 LF,但不能包含 CR。
| 参数 | 说明 |
|---|---|
| xstrview Comment | 注释内容 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 精确计算规范注释心跳长度;Comment 可以包含 LF,但不能包含 CR。 */ result = xrtHttpSseCommentSize(Comment, pSize);
xrtHttpSseCommentWrite
写出一条或多条注释行,不添加事件分隔空行。
| 参数 | 说明 |
|---|---|
| xstrview Comment | 注释内容 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出一条或多条注释行,不添加事件分隔空行。 */ result = xrtHttpSseCommentWrite(Comment, pOutput, iCapacity, pSize);
xrtHttpSseCommentBuild
构建零结尾注释心跳,返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| xstrview Comment | 注释内容 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 构建零结尾注释心跳,返回值由 xrtFree 释放。 */ result = xrtHttpSseCommentBuild(Comment, pSize);
xrtHttpSseLastEventIdValid
判断 Last-Event-ID 是否是可安全放入请求 Header 的 UTF-8 值。
| 参数 | 说明 |
|---|---|
| xstrview Id | 标识 |
示例已编译验证
/* 判断 Last-Event-ID 是否是可安全放入请求 Header 的 UTF-8 值。 */ result = xrtHttpSseLastEventIdValid(Id);
xrtHttpSseContentTypeValid
判断 Content-Type 是否是参数合法的 text/event-stream。
| 参数 | 说明 |
|---|---|
| xstrview ContentType | 内容类型 |
示例已编译验证
/* 判断 Content-Type 是否是参数合法的 text/event-stream。 */ result = xrtHttpSseContentTypeValid(ContentType);
xrtHttpSseRequestHeaders
事务设置 Accept,并按空值删除或唯一设置 Last-Event-ID。
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
| xstrview LastEventId | LastEventId 参数 |
示例已编译验证
/* 事务设置 Accept,并按空值删除或唯一设置 Last-Event-ID。 */ result = xrtHttpSseRequestHeaders(pHeaders, LastEventId);
xrtHttpSseResponseHeaders
事务唯一设置响应 Content-Type,不添加应用策略字段。
| 参数 | 说明 |
|---|---|
| xhttpheaders* pHeaders | 头部对象 |
示例已编译验证
/* 事务唯一设置响应 Content-Type,不添加应用策略字段。 */ result = xrtHttpSseResponseHeaders(pHeaders);
xrtHttpSseResponseCheck
按 EventSource 规则分类状态码和唯一 Content-Type;协议拒绝不修改线程错误。
| 参数 | 说明 |
|---|---|
| uint16 iStatus | 状态码 |
| const xhttpheaders* pHeaders | 头部对象 |
示例已编译验证
/* 按 EventSource 规则分类状态码和唯一 Content-Type;协议拒绝不修改线程错误。 */ result = xrtHttpSseResponseCheck(iStatus, pHeaders);
xrtHttpSseParserConfigInit
初始化现代浏览器兼容的动态限额、替换解码和三秒重连配置。
| 参数 | 说明 |
|---|---|
| xhttpsseparserconfig* pConfig | 配置结构 |
示例已编译验证
httpsseparserconfiginit obj; xrtHttpSseParserConfigInit(&obj);
xrtHttpSseParserConfigValid
纯判断解析配置是否可以安全建立状态机。
| 参数 | 说明 |
|---|---|
| const xhttpsseparserconfig* pConfig | 配置结构 |
示例已编译验证
/* 纯判断解析配置是否可以安全建立状态机。 */ result = xrtHttpSseParserConfigValid(pConfig);
xrtHttpSseParserInit
初始化调用方持有且初始零分配的解析器。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
| const xhttpsseparserconfig* pConfig | 配置结构 |
示例已编译验证
httpsseparserinit obj; xrtHttpSseParserInit(&obj, pParser);
xrtHttpSseParserCreate
创建初始零分配的解析器。
| 参数 | 说明 |
|---|---|
| const xhttpsseparserconfig* pConfig | 配置结构 |
示例已编译验证
/* 创建初始零分配的解析器。 */ xhandle* h = xrtHttpSseParserCreate();
xrtHttpSseParserUnit
释放解析器持有的动态容量,但不释放解析器结构。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
示例已编译验证
xrtHttpSseParserUnit(pParser);
xrtHttpSseParserDestroy
释放解析器持有的动态容量和解析器结构。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
示例已编译验证
xrtHttpSseParserDestroy(pParser);
xrtHttpSseParserReset
清除全部流状态、Last-Event-ID 和 retry,并恢复配置初值。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
示例已编译验证
/* 清除全部流状态、Last-Event-ID 和 retry,并恢复配置初值。 */ result = xrtHttpSseParserReset(pParser);
xrtHttpSseParserReconnect
开始重连后的新响应,保留 Last-Event-ID 和 retry。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
示例已编译验证
/* 开始重连后的新响应,保留 Last-Event-ID 和 retry。 */ result = xrtHttpSseParserReconnect(pParser);
xrtHttpSseParserTrim
把五个动态缓冲的容量裁剪到当前有效长度。
| 参数 | 说明 |
|---|---|
| xhttpsseparser* pParser | 解析器 |
示例已编译验证
/* 把五个动态缓冲的容量裁剪到当前有效长度。 */ result = xrtHttpSseParserTrim(pParser);
xrtHttpSseParserRead
XRT_API xhttpsseparsestatus xrtHttpSseParserRead( xhttpsseparser* pParser, xbytesview Input, bool bEnd, size_t* pConsumed, xhttpsseitem* pItem, xhttpsseerrorinfo* pError );
示例已编译验证
/* XRT_API xhttpsseparsestatus xrtHttpSseParserRead( xhttpsseparser* pParser, xbytesview Input, bool bEnd, size_t* pConsumed, xhttpsseitem* pItem, xhttpsseerrorinfo* pError ); */ result = xrtHttpSseParserRead();
xrtHttpSseParserLastEventId
返回当前持久 Last-Event-ID;视图在下一次修改或销毁前有效。
| 参数 | 说明 |
|---|---|
| const xhttpsseparser* pParser | 解析器 |
示例已编译验证
/* 返回当前持久 Last-Event-ID;视图在下一次修改或销毁前有效。 */ result = xrtHttpSseParserLastEventId(pParser);
xrtHttpSseParserRetry
返回当前重连毫秒数。
| 参数 | 说明 |
|---|---|
| const xhttpsseparser* pParser | 解析器 |
示例已编译验证
/* 返回当前重连毫秒数。 */ result = xrtHttpSseParserRetry(pParser);