怎樣監聽到數據庫的數據變化?
需要實現實時推送消息。前端使用websocket,后端php與node.js都行。 (推薦學習:PHP視頻教程)
現在的問題是,前端監聽服務器端某個數據表的數據變化。無論php socket還是nodejs socket.io都只監聽socket端口的事件,但數據庫的變化又怎樣獲得呢?
這個數據表的更新可能自己socket端的用戶,也可能不處在socket端,有時還可能是管理人員更改了數據。那么,作為服務端的socket怎樣監聽數據變化的事件,然后推送回前端?!
數據庫可能是mysql,也可用mongo。
解決方法:
在應用層面一般來說就是用攔截器之類的方式來實現變化監聽,但是這種方式無法解決數據庫端直接修改。
數據庫層面一般三種方法:
1、類似Oracle等商用數據庫,提供事件監聽機制,可以主動通知連接方關于數據變更的通知;
2、采用觸發器,需要監控的表設置觸發器,然后調用php函數等觸發外部機制;
3、采用觸發器,需要監控的表設置觸發器,但只是寫入日志表,外部仍需要輪詢該日志表;
4、監控或掃描數據庫日志,發現數據庫每一筆變更動作。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com