跳到主要内容

接收消息

设置消息监听

  1. 设置消息接收监听器。所有接收到的消息都会在此接口方法中回调。
  2. 建议在应用生命周期内注册消息监听。
  3. 不支持设置多个监听器。为了避免内存泄露,请在不需要监听的时候将监听器置空。

方法

setOnMessageReceivedListener(listener?: (message: RCIMIWMessage, left: number, offline: boolean, hasPackage: boolean) => void): void;

参数说明

参数类型说明
messageRCIMIWMessage当前接收到的消息
leftnumber当客户端连接成功后,服务端会将所有补偿消息以消息包的形式下发给客户端,最多每 200 条消息为一个消息包,即一个 Package, 客户端接受到消息包后,会逐条解析并通知应用。left 为当前消息包(Package)里还剩余的消息条数
offlineboolean消息是否离线消息
hasPackageboolean是否在服务端还存在未下发的消息包

代码示例

engine.setOnMessageReceivedListener(
(
message: RCIMIWMessage,
left: number,
offline: boolean,
hasPackage: boolean
) => {}
);

注意事项

  • 接收消息注意:

    1. 针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。

    2. hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。

  • 如何判断离线消息收完:

    1. hasPackage 为 false 和 left 为 0。

    2. hasPackage 为 false 标识当前正在接收最后一包(200条)消息,left 为 0 标识最后一包的最后一条消息也已接收完毕。