一、概述
接到一个需求,需要在我们的客户端里实现类似QQ的社交功能,以方便玩家之间的沟通互动。我们的客户端是C++实现的,在开会讨论考虑到成本和时间问题,实现这个功能的任务交个了前端。为了简化说明,我将实现的功能简化成了消息列表、聊天对话框、聊天室三大功能,并且只有基础功能,界面如下的原型图。
二、技术调研
由于后端方面确定用第三方IM SDK实现核心即时通讯的通讯功能,于是我和后端开始收集第三方IM SDK提供商,初步收集下来有三个(网易云信、融云、腾讯云云信)。除了融云,网易、腾讯都是有背景的,网易背靠游戏、腾讯背靠QQ、微信。为什么最后选了融云呢?总结下来主要基于以下几点:
- 从结构上看,融云功能模块比较独立,好友关系、群关系自己维护,刚好符合我们部分定制的需要。
- 相对于网易云信,融云价格方面更有优势。
- 腾讯云信由于业务竞争关系,直接被Boss否定。但我们还是了解了一下,文档写得不是很清晰,给人感觉这个业务没得到重视,估计在后续接入中遇到坑可能得不到很好的支持。
确定使用融云SDK后,开始跑他们的Demo,开始对技术可行性方面的验证和提前采坑。后来发现在技术实现上面确实有一个坎,需要我们去铺平。我们是在客户端里开发,IM的消息列表、对话框、聊天室等这些窗口都是单独独立的。客户端方面给定这些窗口,然后加载我们的前端界面,等于说每个窗口都