接收消息
设置消息监听
- 设置消息接收监听器。所有接收到的消息都会在此接口方法中回调。
- 建议在应用生命周期内注册消息监听。
- 不支持设置多个监听器。为了避免内存泄露,请在不需要监听的时候将监听器置空。
方法
setOnMessageReceivedListener(listener?: (message: RCIMIWMessage, left: number, offline: boolean, hasPackage: boolean) => void): void;
参数说明
参数 | 类型 | 说明 |
---|---|---|
message | RCIMIWMessage | 当前接收到的消息 |
left | number | 当客户端连接成功后,服务端会将所有补偿消息以消息包的形式下发给客户端,最多每 200 条消息为一个消息包,即一个 Package, 客户端接受到消息包 后,会逐条解析并通知应用。left 为当前消息包(Package)里还剩余的消息条数 |
offline | boolean | 消息是否离线消息 |
hasPackage | boolean | 是否在服务端还存在未下发的消息包 |
代码示例
engine.setOnMessageReceivedListener(
(
message: RCIMIWMessage,
left: number,
offline: boolean,
hasPackage: boolean
) => {}
);
注意事项
-
接收消息注意:
-
针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。
-
hasPackage
标识是否还有剩余的消息包,left
标识这包消息解析完逐条抛送给 App 层后,剩余多少条。
-
-
如何判断离线消息收完:
-
hasPackage
为 false 和left
为 0。 -
hasPackage
为 false 标识当前正在接收最后一包(200条)消息,left
为 0 标识最后一包的最后一条消息也已接收完毕。
-