在web通知系统中消息载体是如何承载信息的


在一个消息通知系统中,有评论通知、有回复通知等等:


 - 每种通知在web前台显示格式是不一样的;

 - 对于同一种通知如评论,根据其所评论的内容在web前台显示时又是不一样的,如评论了日记与评论了照片在消息通知的显示中是不一样的;

 - 另外,一张照片的评论也可能会有好几种显示格式;

考虑到扩展性,我也不能把要显示的通知内容硬性的写到数据库或redis中,看到网上提到“模板”,如果单纯的根据通知类型调用其显示模板,我觉得也不行,但实在不知如何设计数据库才能实现我上面的需求,不知道大家是怎么设计这种类似的消息通知的?

Redis web php mysql 消息

Mkukon 11 years, 7 months ago

提一个解决方案:
通知不携带具体的内容或者携带最少量的必要信息(如 消息数 发送方 等信息),当用户实际点击时在异步获取具体的消息内容。

以Android的推送为例。这个为我厂先产品的一个实现。传递通知类型,以及用户id,然后在解析完成后在推送到通知中心。类似上面所说的携带最少量必要信息,然后异步获取具体呈现内容。

再说具体的通知信息如何呈现。
首先,存储中保存的信息必然不是最终呈现给用户的信息。给用户呈现的信息应当是在service层或者在页面组装的。存储还是保存基本数据信息,比如说具体评论内容、时间、图片链接等。

昨天晚上比较晚,思路不是很清晰。现在再做下补充。

上面提到的方法是一。还有就是和view层(web、app)协定好具体的消息格式,然后还是在 service 层完成消息组装。
以iOS推送为例:iOS的推送因为是要遵从Apple的APNs的协议,alter是alter,badge是badge,需要传递给app的,则封装在custom中。web也可以类似,协定好具体的通知格式,然后在web层判断并呈现。

两米下的氮磷钾 answered 11 years, 7 months ago

Your Answer