消息系统的设计(一: 需求分析和思路的整理)

  • A+
所属分类:MySQL PHP

在系统开发中,我们需要完成短信、微信公众号、小程序、web消息、安卓消息、IOS消息的推送(push)以及拉取 (pull),而且消息的类型也是多种多样,我们来分析一下需求。

消息的种类可以分为: 触发消息、验证码消息、自定义消息、公告。

消息的类型可以按照业务多种,例如:财务消息、文章消息、审核消息、订单消息等等。

消息的渠道可以分为: 短信、公众号、小程序、web消息、安卓、ios等。

下面我们先来分析消息的种类

触发消息

指用户触发某种操作后需要向特定用户或者特定用户群体进行推送消息,此消息的内容具体可复制性,内容相似。

例如: 文章审核需要通知网站编辑人员,发送的消息内容一般为: 尊敬的 {用户名} 用户,您的{文章标题}文章已通过审核,点击查看详情。

在上述的例子中, {用户名} 和 {文章标题} 可以视为变量, 其余内容为固定内容, 可以将此消息抽象为一条消息模板: 尊敬的 ${user_name}用户,您的 ${article_title}文章已通过审核,点击查看详情。 只需要在发消息时,将模板中的变量 user_name、article_title 替换为内容即可。

自定义消息

指的向特定用户或者特定用户群体发送相同内容的一套消息,此消息内容为发送者自定义内容。

例如: 在节日活动开始前,可以向所有用户群发消息: 尊敬的用户,中秋佳节将至,已为您准备好节日狂欢盛宴,明日零点低价商品准备开抢,欢迎您的参与,祝您生活愉快。

验证码消息

指用户在登录或者注册等特定环境下,需要通过验证码来验证用户当前身份时,发送的带有验证码的消息。(一般为短信消息,目前也有电话验证码)。

例如: 用户登录时,使用验证码登录,需要向用户发送验证码内容: 您的验证码是{验证码},打死都不要别人哦。

在上述的例子中,可以看出 验证码消息和触发消息很像,都存在变量且内容相对固定, 但是由于短信平台一般将验证码短信和营销类短信分开,可能使用的账号不一致,所以将验证码消息单独分为一类消息。

公告

指后台管理员向站点特定用户群体或者全部用户发送的公告消息。比如:系统升级公告,维护公告等等。

例如: 后台发布维护公告:尊敬的用户,系统将在凌晨1-2点进行升级维护,请勿在此期间操作使用系统,以免引起不必要的损失,谢谢配合,祝您生活愉快。

在上述例子中,可以看到公告一般是指向特定的用户群体或者全部用户发布,因此公告一般不使用推送(节省资源),而且如果使用一张数据库表,来存储用户消息会造成大量的数据冗余,因为有的用户是不登录系统的,因此可以在用户登录时,从公告的数据库表拉取用户的公告,以记录用户阅读状态。

下面我们先来分析消息的渠道:

是否需要push 是否需要pull 是否需要跳转 是否需要读取状态
短信消息
公众号消息
小程序消息
APP消息
web消息
公告

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: