跳转到内容

消息通知模块结构设计

在软件设计中,各种交互形态的消息通知是很容易犯错的组件之一,对于一套独立的软件系统,通知最好只有两类,分别是公告和消息。

公告(Announcement)

公告是一种正式的声明或通知,通常由组织、机构或官方发布,旨在向公众或特定受众传达重要信息。通常具有一定的权威性和正式性,并且通常会在一段时间内保持有效。一般要包括标题和富文本格式的内容,用户需要点击进去查阅。

消息(Message)

消息介绍

消息是一种轻量化的通知形式,核心目的是提醒事件的发生,但不提供细节,可以在消息中嵌入链接,跳转到具体页面或场景。下图是antd前端框架中消息组件。

消息根据来源可分为:

  1. 系统消息:告警、截至日期触发提醒等
  2. 人工消息:任务下发、评论回复、反馈等
  3. 营销消息:由运营公司给特定用户发送的消息(B端不常见)

不同类型的消息应该通过唯一的消息组件进行统一管理,否则不同的消息创建不同的消息组件会导致消息呈现的混乱和爆炸,让用户无所适从。

不论是公告还是消息,都是通知行为,不要求用户跟进执行具体动作,如果希望用户能执行某个动作,则需要通过“待办”组件实现,待办和消息完全不是一回事

通知配置

成熟的商业化软件产品,应该提供灵活的消息配置能力,以便用户自己决定接收什么样的消息提醒。下图是teambition通知配置页。

在B端,有些任务或待办具有时效性,同时部分业务场景可将任务区分重要性,重要的事情需要第一时间通知到任务接收者。而PC端用户不登录系统时,无法通过站内信提醒,则需要通过站外消息提醒,比如短信或邮件。

消息流逻辑

无论站内还是站外消息,在消息数据进入消息中心之后,会通过其分发机制触发给相关用户,用户即可在前端系统的消息盒子中查看到具体的消息内容;如果涉及到转发外部系统提醒的,如邮件中心或短信中心等,则会由消息中心向对应系统发起请求,并触发短信或邮件至用户处。可见下面时序图:

待办(To-do)

待办是需要用户跟进处理的任务对象,有自身的状态,有时候会有过期时间,而消息只是一条无状态的通知。

一条待办消息被创建后,建议通过消息通知组件给用户发送提醒。但无论是否提醒用户,待办一定要在工作台或首页比较显眼的位置呈现出,提示用户跟进处理。