流式消息
为满足 ChatGPT、DeepSeek 等 AI 产品的聊天交互需求,SDK 新增内置 RC:StreamMsg
消息类型,用于持续从服务器接收下行推送数据。
提示
此功能从 5.16.1 版本开始支持。
在 SDK 接收到该类型消息后,与其他消息类似,将通过 Events.MESSAGES
通知到业务层,业务层根据消息的 messageUId
,通过调用 requestStreamMessageContent
接口发起流式内容拉取请求,并通过 Events.STREAM_MESSAGE_RESPONSE
持续接收流式数据推送。
提示
客户端 SDK 只能接收流式消息,不支持直接发送流式消息;发送流式消息请参考集成服务端 API 实现。
监听流式消息请求响应数据
事件数据结构参考:IStreamMessageResponseEventData
示例代码:
js
RongIMLib.addEventListener(RongIMLib.Events.STREAM_MESSAGE_RESPONSE, (evt) => {
const {
type, code, messageUId, chunk,
} = evt;
switch(type) {
case RongIMLib.StreamMessageResponseEventType.INIT:
// 数据通道已建立
break;
case RongIMLib.StreamMessageResponseEventType.DATA:
console.log('增量数据:', chunk.content);
console.log('累加数据:', chunk.fullContent);
break;
case RongIMLib.StreamMessageResponseEventType.END:
// 数据接收完毕,当 code 值非 0 时,说明数据为异常结束
console.log('数据接收完毕:', code)
break;
}
});
发起流式消息内容请求
客户端 SDK 允许最多同时发起 3 个流式数据请求,超出后 SDK 将返回错误码。
示例代码:
js
RongIMLib.requestStreamMessageContent('<messageUId>').then(res => {
if (res.code === 0) {
console.log('请求成功')
}
})