關於簡單實現資料推送的思路與實現

2021-08-14 03:14:13 字數 1433 閱讀 9263

前段時間公司有個專案涉及到了來電諮詢提醒,也就是來到彈屏這方面,據我所知以往的專案並沒有涉及到彈屏這塊這次是客戶的需求。由於專案了整合了乙個第三方管理來電語音卡的程式。這程式好像是vb寫的吧,先說下,這個只是負責將通話的**號碼通話時間,通話線路資訊儲存到專案所制定的資料庫的一張calllogl表中,也可以這樣理解資料庫裡calllogl插入一條記錄即可理解為有新的來電,, 之後我去網上找了找方法大都是支援internet的第三方介面,的資料推送。考慮專案本身只能用於內網不現實,當然之前自己也有思路 就是通過大家都知道的  ajax 輪詢,就是每隔1-2秒都去資料庫查到有沒有新的記錄然後在前台彈出乙個類似dialog ,後來也實現了感覺效率有低,存在**1-2秒  進來多通**的情況。這樣就出錯了(忘記說了,來電語音卡同時管理多個**線路不是單指1路)而且耗費記憶體嚴重可以想象 專案跑一天  不管客戶上下班,都要去資料庫查詢無數次,後來通過研究websocket 我發現這可以提高此項功能效率,首先他是脫離瀏覽器 是基於 tcp 的乙個握手協議 屬於長鏈結,之前的ajax輪詢雖然也實現了與資料庫的鏈結 其實是乙個假長鏈結,伺服器主動向客戶端傳送實時資訊;瀏覽器不斷的向伺服器請求資料並判斷資料是否為最新資料,,這2種情況 效率 高下立判。

然而websocket 有個致命的缺點,說的嚴重,就是瀏覽器的相容性能只支援ie10以上,webserver 也只支援tomcat7 以上,尷尬客戶的執行環境還在ie8 , 考慮到客戶環境 辦公的資料資訊的安全性 讓客戶公升級 作業系統和瀏覽器 不現實,所以這個websocket被否決,(話說在我本地除錯成功,去了現場尷尬了,所以說以後開發首先要了解客戶的pc環境)

再後來 node.js  socket.io實現資料推送,實際上這 socket.io只是node 的乙個模組  官網上也有demo 類似與 聊天室的 可以實現使用者的私聊 公共廣播等功能,聊天的過程實際上就是資料的推送,  這次張記性了首先先看他 的相容性。嗯,!支援ie 8 甚至ie6 , 說道node  其實就是js **執行在 服務端 。而這服務端採用的事谷歌的v8引擎 , 而且自己整合了執行環境,不需要webserver第三方進行管理部署。。,,,話不多說具體功能已經實現。

具體思路是 利用資料庫的觸發器   寫個了乙個觸發執行  http請求的乙個指令碼,大概意思就是 表有新資料插入,就會執行乙個儲存過程,url引數做了處理包含 客戶機ip資訊和來電號碼+線路號碼              而之前的那個node socket.io 改編的服務負責接收http請求  解析引數 分析 業務邏輯 運用  io.emit(ip,msg);  方法實現對不同客戶機實現彈屏操作 。

Spring IOC AOP 註解實現的簡單例項

首先定義乙個animal介面 public inte ce animal定義兩個實現類dog和mat component public class dog implements animal override public void eat component public class mat im...

關於跨模組拿取資料的思路AJAX實現

最近專案中有兩個專案中,b專案需要用到a專案中的動態資料,研究了挺久的,cookie並不是同乙個,所以實現上有所問題,而且專案a 的這個功能資料基類,會被許多類繼承 這時候就想到了用ajax,本人比較喜歡用的是jq中的ajax的抓取 url填入的是所需要的專案a的路徑,去呼叫到我們封裝的獨立的方法,...

關於資料產品的資料設計思路

資料產品的設計思路,因資料產品移動端顯示範圍小,故所顯示的資料需 1.統計資料,如按時間 部門 類別等維度進行合計等 2.分析結果資料,如完成百分比 增長率 同比率等 3.可下鑽明細資料,如按季度合計,可以檢視合計的月份資料,乃至日資料,直至下鑽至最小級別資料 4.可切換維度,如原先按月統計的資料,...