写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来讲明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(不一样使用场景下的功能定义不一样)。 关于各客户端平台(ios、android、wp等)的通知机制,在其交互设计指南中有更详细的说明,你们可自行参考。 android
通知系统,顾名思义即通知信息的传达处理系统。目的是为了让用户得到须要获得的消息及提醒并进行处理。 ios
这里的“须要获得”有两层意思: 一、用户彼此互动触发的信息流(留言、评论或者回复、私信等) 二、网站但愿用户了解关注的信息(系统公告等) web
通知系统设计的原则可简单的概括为: 一、消息传播效率最高(获取、处理、信息传达、用户反馈等效率) 二、避免产生骚扰(噪音、频繁提示) 服务器
不用的平台和产品自己因为对业务的需求不同,种类也是有区别的。 优化
大体可分为如下几种: 网站
通知的逻辑精简后以下: ui
现对这几个环节分开说明: spa
通知在推送以前须要进行汇总合并,目的在于提升消息传播处理效率;减小骚扰,下降噪音;平衡服务器压力。 .net
固然通常都组合着用:合并24小时内未处理消息 设计
通知按照规则汇总完成后,系统将其经过通知管道推送到用户,以便用户处理。
分发方式与Feed系统相似,多采用Push方式,即在指定时间内主动推送给用户。部分特定类型须要用户请求(Pull)拉取未读消息。 目前大部分通知优先推送未处理通知合并后的总数,已提醒用户已有新消息须要处理。用户点击数字后再去服务端请求具体的消息内容。此种方式综合考虑了成本、压力和体验。固然,某些极端状况下须要进行优化处理:如未读消息超过1000,用户请求时先推送前50条或者放入cache中等。技术童鞋会有各类手段,这里不作详述。
分发时间主要根据消息的优先级来作区隔:
分发管道即消息通知的具体推送渠道,根据业务类型能够分为:Web、App、短信、邮件等。
根据前文提到的分发方式,对于通知的处理在逻辑上能够分为两层:通知状态的处理和通知内容的处理。
一般初始数字即为系统推送过来的未读总量,用户点击数字进入相关功能列表查阅后,读取的动做完成,未读数字相应减小。
有几种状况须要变通处理:
根据不一样消息的种类和业务的须要,操做可分为:
消息须要标记是否已处理的状态,且状态在不一样的终端是打通的。 如:用户在客户端对消息进行了查看,在web站点本消息应自动标记为已读状态。
回收主要针对用户已处理消息的操做。
注:具体的交互须要考虑自己业务特色和目标需求。特定业务可能须要强调,某些业务又须要考虑骚扰,故抛开具体情境自己谈交互是无耻的。
这里只针对通常的社区网站,描述一下我的所喜欢的交互方式。
当新消息到达时,可使用如下提醒方式
目前消息多采用当前触发、即时处理相似“所见即所得”的交互方式。 
采用此方式的须要考虑:
因消息自己业务性质,过多无用通知势必会形成噪音,打扰到用户。所以合理设置消息的通知频率和渠道,以防早上体验和效率上的损失。
如常见的邮件退订管理,消息通知类型管理。 
Facebook通知设置

消息屏蔽功能在业务上应该属于第一条中通知类型管理,当业务模块较多且以前关联分散时,或者开放平台功能接入的第三方应用通知时,可以使用屏蔽功能。
facebook应用消息管理
新浪微博应用消息管理
使用隐私设置界定具体的接收权限、范围等微博私信设置
使用黑名单可屏蔽指定用户或关键词的具体消息通知。
当用户长时间不登录或对消息不处理时,可以使用其余渠道推送通知,已达到拉回的目的。 这个要与网站总体的拉回策略相结合。
例:Facebook的好友请求确认拉回邮件:
呃,若是你能看到这里,真的很感谢,这篇文章断断续续更新了好几天才完结,好多地方写的不完整,还望包涵。
我原本想试图去总结一套处理这种业务的逻辑方法,后来仍是放弃了,缘由是:
最后,若是你以为本文对你有用,请分享给其余人。(请注明出处哦)
——更新——
这个是我微博:@阿狗小明,我不常常更新因此不会骚扰到你,留下地址有问题能够私信我一块儿讨论(欢迎单身妹子骚扰)。
——再次更新——
关于Feed与通知有不少共性,会在下一篇里面提到,感谢小雅的建议。
http://www.withink.net/webnotice/