对于一个客服系统,甚至包括WEB端微信, 我们都可以简单的抽象为一个IM系统; 只是随着产品业务的不同, 需要支持不同的数据格式, 定义通信的协议及规范。
对于IM的前端整个过程可以分为:通讯方式, 协议, 数据格式, UI表现层
要保持数据的实时通信,WEB端基本就是两种方式: 轮询和长连接。 Web端可以用WebSocket来解决,这也是业界普遍采用的方案。 通讯环节是相当耗费服务器资源的一个环节,而且开发成本偏高,建议将这些第三方的平台直接集成到自己的项目中,以降低开发的成本。 比如云信就是真正稳定的IM云服务平台
根据不同业务需求可以通过不同的协议来完成
IM系统中, 最重要的数据实体为两个: Session(会话,人,商户) 和 Message(消息列表), Session 和 Message 的关系是 一对多 的关系。
如何保证软件的健壮性,可扩展性和稳定性,其实需要把数据层和表现层分离出来,协议层和数据层也分离出来, 通过事件调度的方式分发。
本文章介绍下七鱼在这方面的应用。