消息通知系统设计注意事项
总结一下我在设计消息通知系统时候,遇到的难点与考虑到的问题,供大家参考,如有疏漏,还请多多交流,欢迎大家指点
数据库数据存储规则
用户聊天时的数据在服务器有两种处理方式:聊天记录在云端存储、聊天记录仅存在本地;
消息存储在云端
用户在换手机、更改账号、清空本地缓存等时,再次进入系统,所有记录仍保持账号或换手机之前的状态;
聊天记录仅本地保存
这里也会细分出两种,数据库标记已读与未读,仅保存未读消息,消息一旦被用户读取,释放服务器数据,另一种服务器只管分发,不论用户读与未读,与服务器无关,当用户换设备时,不会显示历史消息
云端存储消息的可以参考探探、站酷
半存储的可参考qq、微信(保存在本地,但同时云端会保存一部分,云端会标记消息已读与未读)
几种处理方式优劣对比
消息提醒方式
各种类型的消息分发到用户,有用户对用户、群发、系统消息、动态消息等。所有的消息到达用户时,用户接收到的消息不一定都会收到提醒,此处就是C端APP中用户的系统设定要考虑的功能了。
用户端控制接收方式
提醒方式
消息全部到达APP端,用户端接收消息规则考虑如下,
提醒方式:声音、震动,什么情况下都会提醒,单独提醒设置等
未读消息显示规则
显示未读数量、不显示未读数量、用户屏蔽某些消息时显示、系统通知类需不需要特殊处理等;
以上这些大体可以归结为用户主动接收提醒与用户被动接收提醒
用户主动接收的提醒全部需要强烈发送到用户给用户知道;
被动接收的提醒无关紧要,仅告知用户有此消息即可;
消息提醒类型
强弱提醒
上面提到的主动与被动接收简单对应到强提醒与弱提醒
强提醒☞主动接收的消息
若提醒☞被动接收的消息
弱提醒具体弱到什么程度需要按实际情况来划分,如消息通知,弱到仅有一个红点告诉用户,hi~这有一个新消息,具体是什么你感兴趣就看看吧
如果说将某个群屏蔽掉,但是大家聊天聊了多少,这里就有必要告知一下用户了,这里截了一下常见的qq和微信做个栗子
消息提醒范围
用户点对点聊天当然对应着聊天对象;用户群发将消息分发到所有用户;更新某用户信息,将单独通知到某一用户
以上这些很好理解,不过要注意的是介入第三方的时候要设计的点就很多了,需要单独给研发一一列出来
举一个小栗子吧,一个帖子,有发起人、有关注者、有参与人。当有用户评论时,要通知到该帖子的发起方、关注者,而所有参与评论的用户不必通知,如果具体评论回复了某人,该用户肯定会收到新消息……以上这种问题就需要单独去考虑与设计了。
关于这个帖子,每个用户接收到显示的时候,是@你,还是显示内容,如果仅仅用一套东西,需要考虑到各个用户都关心什么,确保所有收到消息的用户都能知道是什么消息,对应哪一个问题或要告诉用户什么事情。
结语
以上就是我在设计消息系统时候考虑的各种要素,具体我是怎样选择并设计的为了避免误导这里没有给出,希望大家根据公司实际情况、项目的具体需求而进行设计。