@HeavyRain
是不是应该在协议栈里面直接去支持流式消息。
首先客户端定义几个消息:
StreamStartTextMessageContent
,存储并计数,是UI 层显示的具体消息
StreamAppendTextMessageContent
,透传,包含start
消息的messageUid
和本次新append
的内容,协议栈收到该消息之后,更新start
消息
StreamEndTextMessageContent
,存储不计数,包含start
消息的messageUid
和流式输出最终的结果,这条消息可选
然后,server api
提供几个流式输出相关的接口
startStreamMessage
,其实就是发送StreamStartTextMessageContent
appendStreamMessage
,触发发送StreamAppendTextMessageContent
endStreamMessage
,更新start
消息,并发送StreamEndTextMessageContent
拉取历史消息时,特殊处理StreamEndTextMessageContent
消息,可以直接抛弃。