研发背景 #
移动互联网未兴起之前,推送技术就已经得到了广泛的应用,只是大家不以推送去称呼它。早年间很多PC客户端项目使用MFC,QT开发,为了和服务器做实时通信,通常都采集用tcp/udp保持连接,这就是推送雏形和底层逻辑。手机做为移动设备无法和服务端保持稳定的连接,android和ios都推出了自家的推送服务,需要开发者把他们集成到项目系统中去使用,这也是市面上已有推送框架解决的问题。随着移动互联网的高潮逐渐褪去,人们看待移动设备的应用场景也更加理性,客户对项目的跨平台需求也越来越强烈。
在实际项目开发中,我们发现手机需要集成一套推送系统,网页端,PC端,小程序又需要不同推送框架,有的客户还要求项目中需要有IM功能,大屏信息实时联动,高并发场景,跨机房部署等,这类的需求使得项目变得难以维护,调试消息推送浪费了大量的时间,开发人员无法专注业务开发。推送已经不是简单的给手机发一个消息或通知了,它已经贯穿整个项目系统,是连接服务端业务和客户端展现的消息总线,于是我们决定把消息推送和业务解耦,开发一套能支持多平台,能满足所有项目需求的推送系统。
对我国芯片制裁事件,让我们认识到国产化软件的重要性,于是放弃具有国外背景的传统通信协议(例如XMPP,MQTT等),减少对主流国外框架的依赖(例如Spring等),同时还需要满足数据传输的安全性、可靠性,以及对国产化平台的支持。