关于群聊信息的一个问题

android
标签: #<Tag:0x00007fca7189c7e8>

(jinfengf) #21

修改昵称后,有收到GroupMemNicknameChangedEvent吗


(jinfengf) #22

收到昵称改变事件,通过事件里可以拿到最新的昵称,或者再通过获取群成员信息来拿到新昵称,你说的页面昵称没有变化,是否是UI刷新问题,这个是不会改变之前对象里的昵称


(凯凯) #23

我指的是聊天页面Message.getFromUser().getDisplayName() 没有变化


(jinfengf) #24

这个getFromUser拿到的是UserInfo,群成员呢称是通过GroupMemberInfo获取


(凯凯) #25

即使是这样,我在JMessageClient.getGroupMembers获取的昵称还是没有变化,一定是收到GroupMemNicknameChangedEvent才会刷新吗


(凯凯) #26

如果本地群信息根据各种Event来刷新更新的话会有很大的延迟啊


(jinfengf) #27

基本不会有延迟,这个Event只是通知你别人改了群昵称,改了会瞬发Event,然后你这边收到Event就可以再次获取群成员信息,更新UI


(jinfengf) #28

你是怎么获取群昵称的,要通过GroupMemberInfo.getNickName()


(jinfengf) #29

不是用UserInfo里的


(凯凯) #30

不是 是memberInfo.getDisplayName(),因为不能保证我长连接在线的时候一定能收到各种Event,或者之前没在线应该收到的Event,这就导致了即使在线也不能100%保证群信息是最新的。能不能定时刷新呢


(凯凯) #31

比如群信息一天或者半天和服务器端同步一次


(jinfengf) #32

事件会定时同步的,如果在线是马上收到,如果不在线,后面长连接建立也会马上同步


(jinfengf) #33

那你之前反馈的昵称没改是用了Message.getFromUser().getDisplayName()对吧


(凯凯) #34

不是 是从groupInfo.getGroupMember里的getDisplayName


(凯凯) #35

总之群信息不能及时同步是的确存在的,看看后期能不能优化相关


(jinfengf) #36

收到GroupMemNicknameChangedEvent事件,然后groupInfo.getGroupMember里的getDisplayName没更新?


(凯凯) #37

收到GroupMemNicknameChangedEvent事件的用户显示昵称正确,另一个用户目前还未收到该事件,昵称未变,长连接一直存在,因为收到了发的群消息


(凯凯) #38

依靠各种Event来更新本地群信息肯定有收不到该事件而没有更新本地群信息


(jinfengf) #39

事件同步是没有问题的,不可能收不到,因为没收到会同步,同步是定时的,都会同步下来的


(凯凯) #40

嗯 有时候延迟太久