1.定义推送消息格式:
$data['MsgType'] = '' ; //消息推送类型 1.Event 2,Text 表明是推送一个事件 还是 文本消息数据 ;Event 目前备用给第三方平台,待以后推送,或者是目前推送刷新页面事件;Text 文本数据,弹出框消息
$data['Source'] = '' ; //来自平台还是产品$data['Event'] = ''; //事件类型
$data['CreateTime'] = '';//消息创建时间,时间戳
$data['ToUserName'] = '';//消息接收方
$data['FromUserName'] = '';//发送方帐号
2.定义推送消息安全性:
从三个方面来讲
@1. 保证用户唯一性 定义用户UUID和网页多开的ClientId对应的情况
@2. 保证数据加密性 采用pkcs#7加密,保证接收到的数据是加密的,方便为我们的开放平台准备
@3. 保证任何截取到我们推送地址的人无法向我们的服务器推送数据,访问请求token验证
3.定义心跳检测:
从前后端分析
@1.前端:定义一个定时器,1分钟向服务器发送一次数据,任意数据,服务器可以知道连接存在。
@2.后端:定义接收事件:返回一个随意数据
4.定义异常处理机制:
注意:在关键地方Try Catch
服务端异常:
1.端口异常:
2.代码异常:
3.服务异常:Redis服务挂掉
处理机制
前端:针对异常,前端在尝试链接时候,收到错误信息,增大心跳检测时间,等待服务端正常,推送消息之后,再正常请求
后端:服务报警机制:
>>1.开通钉钉机器人,推送异常消息
>>2.企业微信发送消息,报告异常
>>3.服务端配置redis挂掉自动重启机制
>>4.Redis配置持久化,保证服务挂掉之后,在重启之后数据可以恢复
5.定义前端用户订阅消息类型:
短信,网页推送,邮件,保证用户在平台发生一些事件时,及时知道