默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
如果更新了聊天群成员的头像,怎么通知所有的群员?
阅读(48047) | 评论(8 收藏2 淘帖1
比如说群员自己更新了头像和名称信息,怎么通知群里所有会员更新此群员的最新头像和名称信息?如果是在线的则循环推送一下,对于不在线的呢?怎么能让他下次上线后获取到最新的会员信息?
我现在想的到是在群表里增加一个字段(last_member_modify),每次群员发送信息时,都带上本地的last_member_modify,如果与服务器的字段值不一致,则将所有会员信息发送回去.有什么好方法吗?谢谢.

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:IM开发
上一篇:iOS 使用AsyncSocket + netty+protobuf做即时聊天遇难到问题下一篇:请教iOS环信的UI中title的颜色怎么设置

本帖已收录至以下技术专辑

推荐方案
评论 8
我不知道你是如何理解好友信息、群信息同步问题的。

按照目前主流的IM实现思路,这些非即时消息的同步是在登陆时先进行批量同步(最优的实现仍然是差异更新),登陆完成后(也即用户处于在线状态时)的同步其实不需要这种即时更新的,只需要在用户关闭界面后重新打开的时候再次进行差异同步就行了。考虑到实际情况:假如你现在正处于聊天群里,你的群友谁更新了头像、什么时候更新了头像,其实对你而言并不是最重要,因为在群的使用中这些不是关键,即使在你下次进入app时再更新也都没有问题,不信你自已从实际角度想想呢?

总之,像群成员信息这些东西,用户主动查看时应该呈现最新信息(实时通过http取一次),非主动的,完全可以lazy更新,这样即简单也不致于让服务器负载增加。

看看这篇网易云信的哥们写的帖子,关于im登陆的优化(包括信息的同步等机制的实现),可以看看找找感觉:http://www.52im.net/thread-282-1-1.html
你天时注意一下QQ群就知道了,qq的群友更新了头像时,其它人看到的更新并不及时,其时这及不及时并不重要,因为你压根就不知道他啥时候更新的,他也不知道你有没有看到他更新。

关于名称的更新,我观察认为,如果你在线的话,对方名称更新后貌似是在他再次发消息时你这边才更新的,所以估计它这种实现可能是在消息里带了更新标识信息,你这边客户端收到后主动refresh就行了。实际上策略你自已定就好了,方法各种各样,关键是别把服务器性能整烂了。
引用:JackJiang 发表于 2016-07-05 09:53
我不知道你是如何理解好友信息、群信息同步问题的。

按照目前主流的IM实现思路,这些非即时消息的同步是 ...

哈哈谢了,这二天进入死胡同了,想的头都痛了.就这么解决先.
自已写im要考虑的东西很多、很细,当然等你搞出一个完善可靠的im,还是很有成就感的,不是所有人都能做好的。
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
引用:pigpig 发表于 2016-07-05 10:02
你天时注意一下QQ群就知道了,qq的群友更新了头像时,其它人看到的更新并不及时,其时这及不及时并不重要, ...

嗯,谢谢
引用:IMDeveloper 发表于 2016-07-05 10:04
自已写im要考虑的东西很多、很细,当然等你搞出一个完善可靠的im,还是很有成就感的,不是所有人都能做好的 ...

嗯,是啊,我现在在意淫中....
我在等积分满了去下载,话说这个网站真的不能直接充值么
可以考虑不实时更新,在消息体中增加发送者个人信息版本号(如时间戳),接收端本地对每条消息附带的发送者个人信息版本号与本地缓存做比较,版本号更新的话就拉取联系人头像昵称信息
签名: 该会员没有填写今日想说内容.
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部