我有捕獲在一個數據庫表中的某些事件基於PHP的Web應用程序。它還具有這些捕獲事件的可視化:一個列出由ajax控制的事件的html表。進程間推捕獲的事件
我想添加一個可選的「活」的功能:按下一個按鈕(「開啓」)的那刻起將被插入到已經可見表捕獲的所有事件之後。有三件事情必須發生:注意事件,獲取事件數據並將其插入表中。爲了讓服務器負載保持在合理範圍內,我不想用ajax請求輪詢新事件,而是我更喜歡長輪詢策略。
的問題,這顯然是做一個長輪詢Ajax調用時服務器相對人有監視的事件。由於事件是通過PHP腳本註冊的,因此沒有簡單的方法可以注意到該事件,而無需再次輪詢數據庫以進行更改。這是因爲捕獲操作在另一個進程中運行,而不是觀察長輪詢請求。我環顧四周尋找一種可用於這種進程間通信的機制,就像我從Linux下的胖客戶端那裏瞭解到的那樣。事實上,PHP擴展了信號量,共享內存甚至是posix。但是他們都只存在於linux(或unix like)系統下。儘管通常情況下該應用程序可能會在極少數情況下在MS-Windows系統下使用。
所以我簡單的問題是:是否有這通常是對所有(大多數)系統,可以推動這樣的事件PHP腳本服務長輪詢Ajax請求任何可用的手段?因爲我在其他地方已經有了一個事件,所以不經常查詢文件或數據庫?