快來了解下小電前端的消息推送

前言

接收消息對於你們來講應該是個實時都在接觸的事情,e.g:前端

  • 微信聊天、通知
  • 釘釘辦公、上課(受死吧小學生~)
  • 各類app的推送
  • ...

大部分人應該都被消息給騷擾過,而後選擇了關閉通知消息免打擾、甚至刪除app等措施。今天講的是大家最喜歡的騷擾推送消息<img width='30' src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTr2LXm0bTX-AYm1npW5Xp6RW2EcDSCuMte3iWG3S364z6hoSM4&usqp=CAU">node

爲何咱們要作消息推送呢, 主要還不是nodejs入門成本不高做爲一個前端也想把消息掌握在本身手裏,推送什麼、如何推送

1、推送什麼

推送包含 主動推送被動推送主動推送是消息推送的難點,這須要根據不一樣場景不一樣人不一樣時機進行不一樣推送,業界作的好的例如某頭條、某音(平時推送的都還比較符合我的喜愛,刷久了會推讓你休息的視頻,晚上太晚了會推讓你休息的視頻 --- 錢給到位,廣告隨便打<img width='30' src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTr2LXm0bTX-AYm1npW5Xp6RW2EcDSCuMte3iWG3S364z6hoSM4&usqp=CAU">),咱們的目前還沒作到這麼好的體驗,都是統一推送,提醒相關人員查看

主動推送

  1. 每一個工做日早上10:30推送前端資訊到部門羣
  2. 每一個工做日提醒你們寫日報、一小時後提醒沒寫的人
  3. 每週最後一個工做日18:30提醒你們寫週報
  4. 項目crate mrissue通知對應人進行查看等
  5. ...

被動推送

  1. 輸入花名返回用戶信息
  2. 查看mr統計數據
  3. ...

2、如何推送

一張思惟導圖帶你們瞭解下

images

相關難點

  1. 數據獲取程序員

    1. 數據源
    2. 爬蟲ip攔截
    3. 獲取時間
  2. 數據處理mongodb

    1. 特殊數據維護:第三方接口會有限制,須要有緩存數據方案
    2. 數據維護
    3. 推送前預覽
    4. 可視化配置時的處理
    5. ...
  3. 推送docker

    1. 推送渠道接入及按照相應格式推送(不一樣平臺格式可能不一樣)
    2. 防重複
    3. 時間準確性
    4. 系統崩潰
    5. 數據統計出報表
    6. ...

3、技術選型

實現功能的基礎上,可選擇更加優秀的技術方案進行迭代重構

Frame:Egg.js

爲何使用Egg:數據庫

  • 提供基於 Egg 定製上層框架的能力
  • 高度可擴展的插件機制
  • 內置多進程管理
  • 基於 Koa 開發,性能優異
  • 框架穩定,測試覆蓋率高
  • 漸進式開發

Database:MongoDB

爲何使用MongoDB:緩存

  • 面向文檔的數據庫 – 數據以JSON格式的文檔存儲。
  • 任意字段的索引
  • 複製和高可用性
  • 自動分片
  • 豐富的查詢
  • 就地更新快

Deploy:Docker

爲何使用Docker:安全

  • 快速交付和部署 可經過「鏡像」來構建容器,經過容器實現高度靈活的自動化交付流程,構建彈性可擴展的系統架構。
  • 安全性與高資源利用 容器之間的是相互隔離的,與底層共享操做系統,性能更加優良,系統負載更低,更充分地利用系統資源。
  • 環境標準化

最後

其實在開發的時候也遇到過很多問題(防重異常、消息沒法正常推送、服務崩潰等)、也經歷過幾回重構,畢竟程序員不在成長路上就在寫bug路上,但願這篇文章可讓你們大體瞭解一下小電前端的消息推送,而後能夠互相探討。微信

後續文章會詳細介紹小電的前端推送的實現過程:中間遇到的問題、解決辦法、版本更替始末之類的架構

相關文章
相關標籤/搜索