2015-06-22 74 views
1

我曾嘗試本教程:Node.js + Angular + Redis + Socket.io堆棧有什麼好處?

http://kodeinfo.com/post/realtime-app-using-laravel-nodejs-angularjs-redis

這在短期是如何使用Node.js +角+的Redis + Socket.io + Laravel(PHP作爲後端)建立一個實時的應用程序。

糾纏我的問題是爲什麼試圖利用所有這些技術來實現實時功能?使用這個(Node.js + Angular + Redis + Socket.io)堆棧有更多好處,比如簡單的AJAX調用到後端?對於您使用此堆棧的其他用例?

回答

9

您列出的每種技術都不是實時需要的,但是我認爲您可能會發現它對進一步瞭解每種技術及其使用有用。

每種技術都有其優點和用途。我建議你分別進行一些更深入的閱讀。你總是可以使用ajax,但你錯過了每種技術的很多優點。所有這些都經過高度測試,DRY和組件化,這意味着您可以更快速地生產並重新投資更少的車輪。

此外,這些技術傾向於在一起很好地工作,並且基於許多相似的概念。 1)Node.js - 您肯定需要一些後端技術,您可以使用php,node.js或您喜歡的任何一種。但是node.js有一些明顯的優勢。 除了成爲JavaSript之外,您可以共享代碼,而node.js非阻塞I/O允許您使用更多資源。

  1. Why use node
  2. Top 10 reasons to use node
  3. How to decide when to use Node

2)角 - 角是您的前端MVC。有很多框架(Ember,後端等等)。你可以選擇任何人或不選擇,但這不是Ajax。有框架帶來更多的負載,例如數據綁定,組件,數據層等等。這也是構建高影響力專業應用程序的重要組成部分。

  1. Why use angular
  2. Three reasons to use angular
  3. what does angular do better than jquery

3)Redis是一個nosql的數據庫。實時與它無關,但可用於此。然而,它已被用於許多pub-sub實現來維護實例/客戶端的狀態。有一個關於Redis的讀取

  1. What is redis and when to use it
  2. why is redis ecosystem flourishing?

4)Socket.io - 這是最實時的面向組件和一個主用Ajax,你可能真的 「替換」。我強烈地敦促你,即使你決定不使用任何其他組件,你仍然使用套接字。io /另一個套接字庫。 Socket.io爲瀏覽器/服務器提供了一個類似於socket的接口(類似於Windows上的winsock)。含義瀏覽器可以發送和接收消息。只是FYI套接字很大程度上依賴於Ajax,但它簡化了使用,並且不需要你自己來主要連接狀態,處理瀏覽器不一致性等等。雖然你可能會使用簡單的Ajax編寫更快的代碼,更多的機會是你最終會引入更多的問題......然而,它是你的電話:)

  1. Why use socket.io
  2. Ajax vs Socket.io performance
+1

謝謝!感謝您的意見! – funguy

+0

偉大的答案和資源 –