跳到主要内容

接收消息

设置消息监听

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

方法

delegate void OnMessageReceivedDelegate(RCIMMessage message,
int left,
bool offline,
bool hasPackage);

OnMessageReceivedDelegate onMessageReceived;

参数说明

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

代码示例

engine.onMessageReceived = delegate(RCIMMessage message,
int left,
bool offline,
bool hasPackage)
{
};

注意事项

  • 接收消息注意:

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

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

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

    1. hasPackage 为 false 和 left 为 0。

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