2012-01-24 59 views
1

我有一種應用程序必須定期查詢數據庫..我想使用推技術,以便當數據庫更新時,服務器將數據發送到客戶端..如何才能實現呢?如何實現使用php的推送技術?

+3

PHP不因爲您需要爲每個客戶端保留一個請求。 – Ikke

+2

或者,您每隔幾秒就用JavaScript輪詢服務器來僞造它。這不是真正的推動,但取決於數據的及時性,這可能是好的。 –

+0

這需要更多的上下文,因爲它在很大程度上取決於架構的其餘部分,客戶端的類型以及可以觸發更新的事件。 – deceze

回答

-2

您可以在PHP中使用SOAP實現Web服務/ API。

3

我們這樣做是相當regularily - 我們的方法是「長輪詢」:

  • 從客戶端,開始一個異步輪詢請求
  • 在服務器上,只要保持此投票請求等待例如30秒(如果你真的需要很長的時間,發送一個\ 0或一個空白的數字)
  • 當數據庫更新時,在服務器端創建某種事件
  • 當這樣的事件被檢測到長查詢處理程序,程序將最終客戶通知和結束請求
  • 在客戶端,當ASYN調查結束,檢查的通知,對他們的工作,然後開始下一個長輪詢
+0

你使用什麼服務器? – thelastshadow

+0

典型的Apache,通常是LAMP堆棧,通常是Ubuntu服務器LTS –

+0

而且您沒有長時間輪詢竊取進程的麻煩? – thelastshadow