1.定義推送消息格式:
$data['MsgType'] =?''?; ?//消息推送類型 1.Event 2游昼,Text 表明是推送一個事件 還是 文本消息數(shù)據(jù) ;Event 目前備用給第三方平臺瞻惋,待以后推送,或者是目前推送刷新頁面事件;Text 文本數(shù)據(jù),彈出框消息
$data['Source'] = '' ;????//來自平臺還是產(chǎn)品$data['Event'] = '';? ? //事件類型
$data['CreateTime'] = '';//消息創(chuàng)建時間呈队,時間戳
$data['ToUserName'] = '';//消息接收方
$data['FromUserName'] = '';//發(fā)送方帳號
2.定義推送消息安全性:
從三個方面來講?
@1.? ? 保證用戶唯一性? ? 定義用戶UUID和網(wǎng)頁多開的ClientId對應的情況
@2.? 保證數(shù)據(jù)加密性? 采用pkcs#7加密,保證接收到的數(shù)據(jù)是加密的志膀,方便為我們的開放平臺準備
@3.? 保證任何截取到我們推送地址的人無法向我們的服務器推送數(shù)據(jù),訪問請求token驗證
3.定義心跳檢測:
從前后端分析?
?@1.前端:定義一個定時器围段,1分鐘向服務器發(fā)送一次數(shù)據(jù),任意數(shù)據(jù)投放,服務器可以知道連接存在奈泪。
?@2.后端:定義接收事件:返回一個隨意數(shù)據(jù)
4.定義異常處理機制:
注意:在關鍵地方Try Catch
服務端異常:
1.端口異常:
2.代碼異常:
3.服務異常:Redis服務掛掉
處理機制
前端:針對異常,前端在嘗試鏈接時候灸芳,收到錯誤信息涝桅,增大心跳檢測時間,等待服務端正常烙样,推送消息之后冯遂,再正常請求
后端:服務報警機制:
?>>1.開通釘釘機器人,推送異常消息
?>>2.企業(yè)微信發(fā)送消息谒获,報告異常
?>>3.服務端配置redis掛掉自動重啟機制
?>>4.Redis配置持久化蛤肌,保證服務掛掉之后,在重啟之后數(shù)據(jù)可以恢復
5.定義前端用戶訂閱消息類型:
短信壁却,網(wǎng)頁推送,郵件寻定,保證用戶在平臺發(fā)生一些事件時儒洛,及時知道