我有一個web應用程序,它運行在Windows 2008服務器機器上的IIS中的CakePHP框架上的PHP中。現在在節點和PHP之間使用Redis與會話共享
,這個應用程序是輪詢每個連接的用戶每6秒刷新屏幕的一部分,這是導致請求到IIS服務器的趨向,並拖慢整個系統時,Oracle數據庫忙。
在試圖解決這個問題,我想了解如何使用Node.js來解決這個問題,並使用推送通知。這種方式每6秒鐘一次,Node會將通知推送給所有活動的瀏覽器客戶端
我面臨的問題是,我正在撥打的電話正在使用登錄用戶會話。 (調用數據庫,一旦我得到數據,更新會話)。
我讀過Redis可以成爲一個解決方案,我已經看到posts explaining how to share the session。但有件事情我不明白尚未:
我怎麼能登錄用戶的會話? 我應該迭代所有活動會話嗎?
我想在節點創建setInterval
來查詢數據庫爲每個登錄的用戶。
爲什麼沒有你的PHP和瀏覽器通過網絡套接字談話,並有PHP推送數據到客戶端,而不是客戶端做池?我不熟悉PHP的抱歉,但在節點中,我們使用網絡套接字,它很容易。我的意思是...那是什麼websockets有。我猜測PHP應該也支持web套接字。這樣,您可以將您的後端合併。 – sagie
@sagie在PHP中沒有什麼像'setInterval'。 PHP僅在用戶發出請求時運行。否則,你需要一個cron或計劃任務,當然,這也不會訪問會話。 (並在窗口中的最短時間爲5分鐘) – Alvaro
確定了你,所以你可能不得不看看php如何將會話存儲在redis中,並擴展Express Redis會話存儲以讀取該格式。問題是許多中間件喜歡在會話上寫東西,所以你的擴展redis會話存儲將不得不處理這個問題。 – sagie