跳到主要内容

版本:5.X

流式消息

为满足 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('请求成功')
}
})