天天看点

xmpp 添加好友 好友状态监听

  1. xmpp 添加好友 好友状态监听

    1.1 a + b b delete a a 监听到 unsubscribed

    1.2 b + a b delete a a 监听到 unsubscrib

    1.3 a + b 或者 b + a 被加方收到 subscrib

    1.4 a 同意 b 的添加请求 b 收到 subscribed

    subscribe ,subscribed 和 unsubscrib ,unsubscribed 都是 a b 双方互相交互时收到的状态

2.1 拿到xmpp 连接

      Roster roster = connection.getRoster();

      Collection<RosterEntry> rosterEntries = roster.getEntries();

       //进行线程睡眠 500 毫秒,防止好友列表取不到

       for (RosterEntry entry : rosterEntries) {

        //进行循环判断 好友的状态

         Both none from to remove  五种状态 (Android 没有收到 remove状态)

          根据不同的状态就行处理

         }      
  1. Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);

    将处理请求方式改为手动。必须再登陆之前设置,否则会出现。好友的请求还没有接受。自动成为好友

    connection.connect();

    4.特别需要注意,添加好友删除好友。离线 和在线的区别。比如Android 版的

    a 删除 b(离线),那么b 上线无法收到被 a 删除这个状态。需要自己写逻辑进行处理