小程序通信思路

之前在忙的小程序,一直想的程序内可以有相互聊天的功能。仔细想了下,其实不现实,由于小程序用户碎片时间的属性,就导致其实两个人同时在线聊天几率不高,更多的是当一个留言板使用。 于是就考虑了放弃使用腾讯TIM模块的方案。

如果从留言板的角度考虑,其实相当于每个相互匹配的用户对之间要建立一个留言板,这就导致可能要维护一个指数级数增长的数据列表,每个列表内还要持久存储可能会超长的聊天记录,这是不现实的。

重新思考了一下,感觉还是应该按IM的思路来实现。其主要问题就是以下几个:

  1. 聊天记录要不要持久存储
  2. 指数级增长的用户对如何处理
  3. 如何实现在线聊天能力

1.对于聊天记录持久存储的问题,答案是否,既然腾讯都不存储,我这种微量应用更不该持久存储。用户聊天记录应该存储的在本地端。

2. 指数级增材的用户对应该解耦,将每个用户对存储在每个用户列表内

3. 在线聊天能力应该通过websocket的数据库监测能力实现。

具体方案如下:

建立两个信息池,一个是持久化信息池表,一个是即时通信信息池表。每次用户登录先查询持久化信息池,找到未读消息,在客户端对未读消息进行处理。然后实时监控即时通信信息池。

具体方案大量参考了 http://www.yunliaoim.com/im/4635.html

comments powered by Disqus