项目简介:
这个项目是开发一款即时通讯IM系统的客户端,适用于H5、安卓和IOS平台。它具备以下功能:红包转账、朋友圈、群聊和群聊红包、收藏功能、语音相册、视频通话,并附带视频教程。
项目背景:
该项目是一个社交APP的开发任务,参考了QQ和微信的功能,但与它们不同的地方在于此项目拥有游戏专区列表。在这个列表中,列出了热门游戏的简介和入口链接,用户通过这个入口可以进入游戏。对于用户而言,这个App首先可以用于生活或工作中的社交,其次可以用于游戏中的社交关系。
前端:
项目首先是一个APP,其次可以在其他平台上上线。根据公司的情况,我们决定使用H5开发Hybrid APP。这种开发模式具有跨平台的优点,一套代码多端运行,可以有效地节省开发周期以及维护、升级和更新的工作量。而且Hybrid APP的开发模式已经非常成熟,性能和原生接口方面都能提供良好的体验。很多主流APP,如天猫、淘宝、京东等都采用了这种开发模式,基于H5的Hybrid APP已经是行业趋势。
后端:
根据公司的情况,我们主要擅长PHP编程,所以整个后端技术都采用PHP全系。考虑到社交类APP用户在线率高、并发量大、数据量庞大的特点,我们需要进行相关优化。
数据库方面:
项目需要多个数据库联合工作,其中MySQL用于写操作,MongoDB用于读操作,实现读写分离。在设计数据库时,需要合理划分和设计,并进行水平切分。另外,根据具体情况,我们会使用缓存、集群、分布式和CDN等技术来提高性能。
项目技术栈:
前端:
采用Dcloud的uni-app全系,基于Vue.js和微信小程序开发模式。目前支持APP(Android、IOS)、H5、微信小程序和支付宝小程序等5个端。在特定场景下,可以使用weex进行原生渲染。APP端使用Dcloud公司的H5+进行原生接口调用。
后端:
PHP 7.2.x
使用ThinkPHP 5.1作为HTTP服务(Nginx)
使用getWanWork作为Socket服务(socket数据交互方式为二进制数据格式)
使用Redis作为缓存,特定模块使用SQLite作为缓存模块数据。
使用MySQL和MongoDB作为数据库。
使用JWT进行用户验证。
使用HTTP进行文件传输。