程序员的自我救赎---4.2:消息中心讲解与应用
《消息中心讲解与应用》
在讲消息中心之前我希望看我这篇博客的园友们能先看一些《短信中心源码分析与应用(工厂)》,因为这两个项目很类似,但是在Winner中的意义却差别很大。
首先短信中心的主要职责是发送短信,消息中心中包含短信模块。除此之外消息中心支持:微信消息推送,邮件推荐,APP消息推送,站内信等等。
常言道:“一图胜过千言万语”。我们直接上图:
消息中心是符合标准工厂的方式来做的,使用静态工厂却创建。这跟前面的《短信中心源码分析与应用(工厂)》里讲到的1.0是一模一样的,在消息中心中我们并没有
去SaaS。 这是也有一点历史原因,其实就是 短信中心是 后来重构了一次,而消息中心没有。
消息中心在Winner体系中应用最多的地方就是APP的消息推送。我们使用的“极光推送”。这个第三方平台还可以,当然类似的平台还有几个,目前我们只用了极光推送
我们没有去对比其他平台,总归极光符合我们的需求,就一直用他。关于APP如何实现极光推送这里我就直接引用极光推送的官网:https://www.jiguang.cn
然后就是微信公众号的推送,这中间如何申请微信公众号,如何实现发送消息官网上都很清楚我也不去赘述了: https://mp.weixin.qq.com/
只是微信有比较恶心的一点就是必须按照它模板的格式去发,甚至说发送的内容什么字体什么颜色都有明确的要求。 至此,这里对我们来说要求每个项目都要去
编写模板信息就太费事了,所以我们将常用模板保存在了数据库,并自己开发了模板解析的方法。
其实透一点就是数据库存储了膜拜内容,而膜拜内容中我们用了类似之前《PLSQL报表系统》中的关键字替换,而这些关键字我们都有对应的实体类。
整个项目不复杂,但是战略位置却很有意义,还是那句话:“职责分离”。
最后,发送邮件、站内信 都是自己开发的具体实现,区别在于,站内信我们没有去开发一个“站内信系统”、“邮件系统”。这个是没有开发的,相对而言这两个的需求
在我们所开发的项目中还是较少的,邮件我们用的腾讯的企业邮箱(https://exmail.qq.com)有每天有500条免费发送量,足够我们用了。如果对此后续还业务量的需求,我们也会像短信中心
那样开发一个“邮件系统”。甚至还要单独拿台服务器出来做邮件服务器。
另外,我图上也特地画了一下Web模块,之前的“短信中心”是没有Web模块,假如这个时候有一个需求就是:临时需要推送一条通知给制定用户的话,怎么办?
短信中心是没有操作界面给我们的市场人员去操作的。
其实不是不能,而是这个需求的实现者不是短信中心,而是消息中心。由消息中心的Web管理后台的给用户发送消息,甚至是群发短信,微信短信组合发送 都可以的。
消息中心其实没有必要单独拿出来开一个篇章,但是还是因为它的是项目开发中必不可少的一个组件,重要的还是表达一个Winner2.0的“组件化”思想。
(补充一点:其实消息中心又那么点“工厂方法”的味道, 如果把消息中心和短信中心组合在一个项目里面的话,那这就完整的工厂方法模式了。)
有兴趣一起探讨Winner框架的可以加我们QQ群:261083244。或者扫描左侧二维码加群。