请选择 进入手机版 | 继续访问电脑版

默认
发表评论 12
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教IM中用户昵称和用户头像一般是如何处理,每条消息带上吗?

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

推荐方案
评论 12
一般是这样处理的:你的im中,有个通讯录(或者说好友列表),这全列表中的对象就是要聊天好友的全部信息了,包括昵称、头像信息等。

聊天时:你根据对方的用户id,在这个通讯录(或好友列表)缓存中,反查,就能得到对方的全部信息了,不需要每条消息都带上,没有必要的。

这样的话,通讯录缓存的更新逻辑,和聊天消息互相不相干,独立维护,代码也就整洁清晰多了。
签名: 周末了,还是得工作。。
3 楼: error Lv.1 楼主 1 个月前 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
引用:error 发表于 2020-12-15 11:15
请教一下在第一次登录的时候进行同步一下通讯录?图片是进行base64存入数据库还是每次从服务器拉取?

更优雅的,应该是有个同步时间戳,每次登陆或掉线重连成功后,跟服务端增量比对一下,有修改的就同步过来。微信就是这么做的

图片一般就存个文件路径或文件名,显示的时候用图片缓存库加载就好好,它们会自已管理缓存,这个搞移动开发的都懂吧。

我说的如果不妥的话,希望群主不要喷我,瑟瑟发抖........
引用:天黑请闭嘴 发表于 2020-12-15 11:22
更优雅的,应该是有个同步时间戳,每次登陆或掉线重连成功后,跟服务端增量比对一下,有修改的就同步过来 ...

说的没错。

如果觉得增量更新有点麻烦,刚开始可以简单的一把拉取就好了,后面再精益优化地时候再去实现增量也来的及,必竟它跟聊天逻辑不耦合,很好改
签名: 周末了,还是得工作。。
6 楼: error Lv.1 楼主 1 个月前 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
7 楼: error Lv.1 楼主 1 个月前 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
引用:error 发表于 2020-12-15 11:37
请教一下,对于群消息中用户头像和昵称是如何处理?

也是一样的道理。

你可以观察一下微信里的群聊,你卸载后,等群里有很多消息的时候,你再重新安装登陆,会发现显示昵称时先显示的是微信id,但微信会同时在后台加载群成员信息(跟你好友列表缓存是一个道理),加载好成员信息后,界面上的微信id会自动更新显示为昵称(这也间接证明了,昵称这样的信息不是通过消息带过来的)。
签名: 周末了,还是得工作。。
9 楼: error Lv.1 楼主 1 个月前 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
10 楼: error Lv.1 楼主 1 个月前 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
引用:error 发表于 2020-12-16 15:13
站主,可以开一篇讲即时通讯前端的文章吗?包含前端缓存处理,各个页面数据和后台交互,比如通讯录如何同 ...

那不就是手把手教你写im。。。
签名: 周末了,还是得工作。。
提示: 作者被禁止或删除 内容自动屏蔽
签名: 周末了,还是得工作。。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部