1

我正在構建一個Web應用程序,用戶可以在其中註冊,添加他們想要關注的tweet提要,並且他們的流將隨着他們正在追蹤的提要接收新帖而更新。如何在Laravel應用程序中獲得實時更新

我去平臺是Laravel。但是,我想不出實現網站實時更新方面的最佳方式。

我會使用一個定期調用的AJAX函數(例如每30秒),但隨着用戶數量的增加,這種方法也存在缺陷。

我已經研究過HTML5服務器端事件,但不幸的是IE不支持。

在Laravel應用程序中實現此功能的最佳方式是什麼?

感謝,

尼克

+0

我會去的node.js和服務器到客戶端的推送.. – opHASnoNAME

+0

感謝您的評論。我正在研究使用Laravel的Node。理論上我理解如何使用Node將消息(本例中爲推文)推送到laravel模板。我希望用戶能夠在Laravel應用程序中進行管理,因此他們將在這裏選擇他們想要遵循的Twitter提要。我該如何着手讓節點知道哪些用戶對哪些供稿感興趣,並使用他們選擇的推文更新他們的頁面(而不是使用來自節點的相同數據全局更新每個人)? – nvaughan84

+0

只是想到:建立一個數據庫,與node.js應用程序共享它。嗯聽起來像一個有趣的項目爲我的休息時間;) – opHASnoNAME

回答

3

你有兩個選擇:

  1. 流式傳輸(Websockets)
  2. 長查詢

你可以閱讀更多有關的WebSockets這裏: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

而且你可以瞭解更多關於長輪詢這裏: https://www.quora.com/Why-would-HTTP-long-polling-be-used-instead-of-HTTP-Streaming-to-achieve-real-time-push-notifications

簡而言之:
的WebSockets不同的端口比你平常的應用程序上運行,因此訪問所有資產可能有點奇怪(取決於您的系統架構)。

長輪詢是一個非常長的http請求,可以持續長達幾分鐘,而不是每30秒發送一次請求,每次服務器返回響應時都會發送一次請求。這意味着如果服務器花了5分鐘返回響應,則每5分鐘只發送一次請求。 (例如,沒有任何理由提醒客戶端沒有任何變化,所以你可以睡覺(30),然後再試一次)

作爲一個方面說明,除非你需要實時數據,否則我認爲長時間輪詢很多更容易實現和使用框架,如laravel。

+0

感謝您的回覆。長時間輪詢會對服務器產生任何影響。如果網站上一次有1000個用戶,這會給Apache帶來什麼問題? – nvaughan84

+0

嘿 - 當時對於Facebook來說已經夠好了(我認爲他們現在變成了別的東西,取決於你想要擴展的規模)。 https://www.facebook.com/note.php?note_id=14218138919 – Patrick

+1

另一個可能有用的後 - http://serverfault.com/questions/562701/how-to-scale-up-a-web-server - 支持長輪詢 – Patrick

相關問題