默认
发表评论 1
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
IM新手求助IM里的收藏功能实现的大概思路
阅读(50992) | 评论(1 收藏 淘帖
3金币
大家好,想请教一下IM收藏功能的实现思路

场景

有一款IM是社区内部使用,比如有2000-3000人左右,程序已正常运行,在使用中为了能保存消息中各种有用的数据,提出收藏需求,可以类比于微信(其实是相同的),为了简单起见,就只收藏文本和图片两种类型



平台
有两种,手机移动端和PC端


程序运行流程
和微信相同,还是写一遍,没有做过类似开发,下面写的是个人理解


手机端收藏一副图片之后,应该会上传到服务器,而且本地应该也会缓存一份
对于中央服务器来说,工作量应该比较大,下面是设想的几点:


  • 对于几千人的收藏服务端应该有个相关的架构,毕竟不是几个人的流量,比如每个人的文件组织方式要不要限定收藏容量
  • 如果服务端收到收藏的消息之后,应该能像聊天消息一样同步推送到另一端。这个可以用微信来验证,比如PC端的收藏列表打开,只要手机收藏成功,PC端就会马上进行显示。
  • 某一端在打开收藏的时候,应该会和服务器同步一次。比如微信的收藏在打开时,可以看到会向服务器查询一次(表面看上去是这样的),而且本地应该还会有【缓存】,如果不缓存,每次打开都向服务器下载一遍收藏很浪费流量。

这个问题如果抽象来看,和IM并没有必然联系。可以抽象为,用户向服务器上传文件,再取文件的一个过程。同时,因为人数上千,所以服务器要架构一下,而且还需要本地缓存的处理。基本是这些,不知道有没有描述的清楚。

如果有这方面的经验,请不吝赐教(有偿),个人对这个问题也非常有兴趣,希望大家共同交流一下。


标签:求助 IM开发
上一篇:求助关于web端im的消息存储该怎么实现?从而方便浏览器拉取下一篇:求助Android保活相关的技术实现方案。。。
推荐方案
评论 1
收藏这个功能,你不要想太复杂了,换句话说:如果现在就是一个普通的信息系统,而且收藏的不是图片,那么,是不是一条收藏对于这个人来说,就只是在数据库里收藏表里加一条记录而已。

如果再考虑一下,收藏的是一个图片的话,就多了一个图片文件的上传和服务端存储而已,而此时收藏就是这个图片文件的文件名或服务端存储的地址而已。

再考虑一下,要做到im这种收藏,多端同步的话,无非就是再实时多发一条同步指令而已。

其实拆解一下来理解,不会复杂,收藏这功能算是im里最普通的功能了,更复杂的不是这种。

最复杂的功能,比如短视频这种:它涉及到录制(录制参数调整)、压缩、存储、上传(靠谱的一点的还得做成支持断点上传)、发送url指令、对方收到url指令并处理、对方下载视频(复杂的可能还得要搞成支持断点下载)、对方播放视频等等流程,而且,你可以想见光是写好一个稳定可靠的录制和播放界面也需要一点时间(必竟各机型兼容性要考虑、功能对接接口的易用性要预留出来等等)。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部