我正在構建一個Web應用程序,用戶可以在其中註冊,添加他們想要關注的tweet提要,並且他們的流將隨着他們正在追蹤的提要接收新帖而更新。如何在Laravel應用程序中獲得實時更新
我去平臺是Laravel。但是,我想不出實現網站實時更新方面的最佳方式。
我會使用一個定期調用的AJAX函數(例如每30秒),但隨着用戶數量的增加,這種方法也存在缺陷。
我已經研究過HTML5服務器端事件,但不幸的是IE不支持。
在Laravel應用程序中實現此功能的最佳方式是什麼?
感謝,
尼克
我正在構建一個Web應用程序,用戶可以在其中註冊,添加他們想要關注的tweet提要,並且他們的流將隨着他們正在追蹤的提要接收新帖而更新。如何在Laravel應用程序中獲得實時更新
我去平臺是Laravel。但是,我想不出實現網站實時更新方面的最佳方式。
我會使用一個定期調用的AJAX函數(例如每30秒),但隨着用戶數量的增加,這種方法也存在缺陷。
我已經研究過HTML5服務器端事件,但不幸的是IE不支持。
在Laravel應用程序中實現此功能的最佳方式是什麼?
感謝,
尼克
可以使用推或node.js中的realtime.In laracast你會發現視頻怎麼做https://laracasts.com/series/intermediate-laravel/episodes/4
你有兩個選擇:
你可以閱讀更多有關的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。
感謝您的回覆。長時間輪詢會對服務器產生任何影響。如果網站上一次有1000個用戶,這會給Apache帶來什麼問題? – nvaughan84
嘿 - 當時對於Facebook來說已經夠好了(我認爲他們現在變成了別的東西,取決於你想要擴展的規模)。 https://www.facebook.com/note.php?note_id=14218138919 – Patrick
另一個可能有用的後 - http://serverfault.com/questions/562701/how-to-scale-up-a-web-server - 支持長輪詢 – Patrick
我會去的node.js和服務器到客戶端的推送.. – opHASnoNAME
感謝您的評論。我正在研究使用Laravel的Node。理論上我理解如何使用Node將消息(本例中爲推文)推送到laravel模板。我希望用戶能夠在Laravel應用程序中進行管理,因此他們將在這裏選擇他們想要遵循的Twitter提要。我該如何着手讓節點知道哪些用戶對哪些供稿感興趣,並使用他們選擇的推文更新他們的頁面(而不是使用來自節點的相同數據全局更新每個人)? – nvaughan84
只是想到:建立一個數據庫,與node.js應用程序共享它。嗯聽起來像一個有趣的項目爲我的休息時間;) – opHASnoNAME