项目描述:
项目是开发一款社交APP,具体的参考QQ、微信上的功能,与QQ、微信不同的地方在于此项目有一栏游戏专区列表,在这个列表里列出了各个热门游戏简介及入口,用户通过这个入口进入游戏,对于用户来说,首先是可以用作生活或者工作社交,其次是可以用作游戏里面的社交关系。
项目背景:
前端:
项目首先是一个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+进行原生接口调用。
官网:https://uniapp.dcloud.io/
后端:
php 7.2.x
Thinkphp 5.1作HTTP服务(nginx)。
getWanWork作socket服务(socket 数据交互方式是二进制数据格式)。
redis缓存,特定模块用sqllite缓存模块数据。
mysql、mongodb 数据库。
JWT进行用户验证。
使用 http 进行发送文件
项目架构要点:
一、发送文件发送语音、发送视频,发送文件(图片、文件、录音、视频)等,通过HTTP服务上传到服务器,在聊天记录里产生一条记录,记录里url指向上传的地址
二、后期涉及到的实时语音通话、视频通话,则要去学习流媒体技术
三、上线了用linux 环境搭建
四、应对高并发,要从多个方面入手(服务器配置、逻辑代码合理、CDN、缓存、数据库合理设计、水平切分、读写分离)、木桶效应,并发高低取决于架构的最短板的模块。
通讯模块:
进行HTTP、socket通讯。
会话列表:
与好友会话列表(参考微信)
通讯录:
按照a-z排序通讯录的好友(参考微信)
朋友圈:
点赞、评论、转发(参考微信)
会员系统:
会员登陆、会员的个人资料编辑(参考微信)
支付系统:
充值、红包、转账
会话功能:
发送文字、表情。
添加好友功能:
用户名添加、手机号添加、邮箱添加
升级模块:
添加好友功能:
个人名片、扫码添加
会话功能:
发送语音、发送视频,发送文件(图片、文件、录音、视频)、语音通话,视频通话
公众号:
公众号推送、与公众号会话(参考微信公众号)