关于群聊信息的一个问题

android
标签: #<Tag:0x00007fca7559e178>

(凯凯) #1

为什么群聊成员有时候不一样,有些手机用户显示群成员个数不完整,退出重新登录还是一样,除非是卸载重新安装群聊人员才显示完整,怎样才能解决这个大问题呢?


(凯凯) #2

getGroupMembers这个方法说明如果本地不存在才从服务器获取,导致本地存在,但是一直没有收到更新的信息,导致群成员没改变,或者群成员设置的昵称没有更新。除非清理缓存或者卸载重装,我重新登录也没有更新信息,消息延迟太久。总之能不能我不从本地获取直接从服务器更拉取。


#3

说明下你的具体操作步骤,群成员的增加是在哪里操作的?

是直接android 端创建群,添加群成员,然后本地获取到的成员数就不对么?

是 A 手机添加,B 手机看的不对?

还是后台添加等,具体的步骤说明一下,并注意看android客户端有收到成员变化的事件


(凯凯) #4

操作步骤是有部分是群主添加的 有部分是申请入群的,如果此时有些用户没在线,过了一段时间登录,查看群成员人数不对,如果im更新本地群信息仅仅是根据变化的事件来更新的话有时候延迟是很大的,当然你说的双方同时在线肯定能收到成员变化事件,如果被邀请的一方没在线,当在线的时候有很大的概率收不到该事件,IM难道不能定时从服务器刷新一次信息吗,这个问题在我建立的群,好多成员查看群成员信息明显缺了很多。GroupId:31486528


(凯凯) #5


mvnrepository仓库还没有更新到2.8.1 麻烦更新下我好更新sdk


#6

客户端如果用户不在线,那应该是在重新上线获取群成员列表,这时事件是通过离线同步下来的,中间可能会有一点延迟,这取决于你们上线后事件的多少,但也不会延迟太久,离线事件保存 7 天。

目前你观测到的延迟有多久?

你复测到有此异常的群组 ID、收不到事件的用户的 username,Appkey ,添加群成员的时间,重新上线的时间,延迟了多久仍然收不到事件的时间,均说明一下。


(凯凯) #7

GroupId:31486528 收不到事件username:633644, Appkey :92d42abedf21e3600db80c67 ,添加时间:1547530627000 刚才看了下该用户显示的群信息更新了,但是之前一直显示群成员少了一半,而且群成员显示的昵称也没有改变,总之延迟了至少3天,中间登录了好几次,群信息均未更新。期间群消息也未下发到。


(凯凯) #8

总之就是不能保证我在线的时候查看群信息是最新的,我发现群成员少于10人出现这种情况很少,当群成员多的时候就很容易出现此问题


#9

根据你这里的说法,怎么感觉你这个用户登陆后什么信息都没有更新,这是不应该的,感觉要么你没有登录成功,要么是我们的信息已经下发,你没有正确监听,或者上层没有正确处理展示。

现在是否可以重新复现这个问题?并描述完整的操作步骤,提供这个用户从初始化、退出登陆、在群里新增成员,更新群组信息等之后,该用户重新登录后的日志。


(凯凯) #10

该监听的事件我都已经监听了,我发消息对方也能收到,证明长连接一直在,但就是群成员信息不能及时更新,但就是JMessageClient.getGroupMembers返回的群成员不对,即使我没有监听,也不影响我调用JMessageClient.getGroupMembers方法


(凯凯) #11

JMessageClient.getGroupMembers这个方法不能够返回最新的成员信息,我修改我在该群的昵称,另外成员调用JMessageClient.getGroupMembers方法没有更新,即使我在该群发消息现实的昵称也没有及时更新。


(jinfengf) #12

你说延迟至少3天,是指在这3天里,群成员人数一直不对,然后群消息也收不到吗?


(凯凯) #13

我看了一下,的确群消息这三天的没有收到,群成员信息也没更新,现在显示群成员信息系正确了,之前漏掉的信息也没有加载出来。


(jinfengf) #14

你说的这种情况有点像用户被踢出了群组,然后后面又加了回来


(凯凯) #15

没有被踢出,这个我肯定。因为我就是群主。 就是那个离线加载群消息如果仅仅根据事件来刷新,当该事件产生的时候用户不在线,在线的时候很大的几率没更新。我修改了我在一个群的显示昵称,过去了将近20分钟,另外该用户仍然没有更新,我发消息显示的昵称还没有变化


(jinfengf) #16

你不是说群消息收不到吗?


(凯凯) #17

现在是证明双方长连接同时在线,一方修改昵称,另一方没有变化,因为setMemNickname文档介绍没有事件消息,不知道是什么时候更新。


(jinfengf) #18

setMemNickname是没有事件消息的,你说的消息收不到,是指群聊消息收不到还是什么


(jinfengf) #19

群成员昵称更新是通过GroupMemNicknameChangedEvent来通知的


(凯凯) #20

指的是,A用户修改了他在群中的昵称,A查看群成员信息自己的群昵称改了,在群里发了个消息,B用户收到A发送群消息,但是在B看来A的昵称没有变化,半小时后A再发消息,B看来昵称还是没有变化,及时监听GroupMemNicknameChangedEvent也只是刷新群信息,聊天信息页昵称没有变化