协议栈的群聊成员是否有缓存? 有成员退出群聊后, 其他已经查看过群聊信息的人, 看到的用户数没有变化

gaocunbin 2021-5-22 634

复现场景如下:

1. 一个手机 - 群主 2. 一个手机 - 成员1  3. 一个手机 - 成员2

4. 一个手机 - 成员3 4. 四个手机都点开过他们一起的群聊的详情页面, 查看过群聊成员, 这是重点 5. 然后, 成员2退出群聊 6. 这时, 群主和成员1, 成员3进入群聊详情页面还都能看到已经退群的成员2

List us = mClient.getUserInfos(userIds.subList(startIndex, endIndex), groupId);

前端打印的协议栈仍为4个人

后台注意到一个类型是4, 作为退群用户, 仍然存在, 所以后台查询条件排除了4类型的用户, 后台返回3人

但结果, 上述复现场景下, 仍然在协议栈调用后, 收到4个人的返回, 并未反应真是情况

这应该是协议栈的问题, 请协助确认

上传的附件:
最新回复 (11)
  • HeavyRain 2021-5-23
    引用 2
    1,有没有自定义退群通知消息?
    2,获取群成员的方法不是上文中的那句话吧,你们检查一下是getGroupMember这个函数吗?
  • gaocunbin 2021-5-23
    引用 3
    1. 没有自定义退群通知
    2. getGroupMember的返回也是4个ID
    上传的附件:
  • gaocunbin 2021-5-23
    引用 4

    上面是我在安卓端打印日志的地方, 如果需要排查, 请告知还需要在哪里打印日志, 多谢

  • gaocunbin 2021-5-23
    引用 5

    成员退群, 后台服务看到的行为是用户被标记为状态4, 我们改了后台的逻辑, 让接口返回排除状态4的群用户, 这样后台服务接口打印的结果是返回前端3个; 但是, 我们在android协议栈函数(上图中标记处)调用处打印出来4个, 怀疑是不是协议栈内有sqlite相关, 并没有排出状态4的用户?

  • gaocunbin 2021-5-23
    引用 6
    另外, 问题出现后, 如进行下面两种操作之一, 都会更新成后台接口返回的3个人了, 所以怀疑手机端哪里没有进行数据更新
    1. 如果手机卸载APP重新安装, 
    2. 或者群主点击“群聊删除成员”按钮, 进入待删除页面, 再返回(并没有实际删除动作),  
  • HeavyRain 2021-5-24
    引用 7
    IM服务是什么版本,如果是0.62或0.63,更新到最新试试
  • gaocunbin 2021-5-24
    引用 8
    您好, 请问哪里查看已经集成进入我们系统的IM的服务版本信息?
    我们用的源码集成, 我们的app源码集成了uikit

        implementation project(':uikit')
  • x86 2021-5-25
    引用 9
    HeavyRain IM服务是什么版本,如果是0.62或0.63,更新到最新试试
    这儿指的是服务端版本,可通过: http://{你的im server的ip或域名}/api/version 查看
  • HeavyRain 2021-5-25
    引用 10
    https://github.com/wildfirechat/server 这个服务
  • gaocunbin 2021-5-25
    引用 11
    和后台的同事确认, IM后台服务版本用的是0.55
  • HeavyRain 2021-5-25
    引用 12
    给我们抓日志吧,客户端的日志,比如成员2退群,抓成员3的日志,在UI层的日志中加上打印出群成员信息,成员3进入到会话设置界面再退出再进入,就OK了
返回