Node.js + Angular + Redis + Socket.io堆栈有什么好处?

我试过这个教程:

Realtime App Using Laravel + NodeJs + AngularJS + Redis

简而言之就是使用Node.js + Angular + Redis + Socket.io + Laravel(PHP作为后端)构build一个实时应用程序。

困扰我的问题是为什么要利用所有这些技术来实现实时function? 使用这个(Node.js + Angular + Redis + Socket.io)堆栈,让简单的AJAX调用到后端有没有更多的好处? 对于你使用过这个栈的其他用例呢?

您列出的每项技术都不是实时需要的,但是我认为您可能会发现对于每种技术的进一步理解以及使用它们都是有用的。

每种技术都有其优点和用途。 我build议你分别做一些更深入的阅读。 你总是可以使用ajax,但是你错过了每种技术的很多优点。 所有这些都经过高度testing,干燥和组件化,这意味着您的生产速度会更快,而且投资更less。

而且这些技术往往能够很好地结合在一起,并且基于许多相似的概念。

1)Node.js – 你肯定需要一些后端技术,你可以使用php,node.js或者你喜欢的。 但是node.js有一些明显的优点。 除了是JavaSript,所以你可以共享代码,而node.js非阻塞的I / O允许你使用更多的资源。

  1. 为什么使用节点
  2. 使用节点的十大理由
  3. 如何决定何时使用节点

2)angular – angular是你的前端mvc。 有许多框架(Ember,后端和其他许多)。 你可以select任何人或者不select,但是这不是Ajax。 有框架带来更多的负载,如数据绑定,组件,数据层等等。 再次是伟大的基石build立一个高影响力的专业应用程序。

  1. 为什么使用angular度
  2. 使用angular度的三个理由
  3. 什么angular度做比jquery好

3)Redis是一个nosql数据库。 实时与它很less有关,但可以用于此。 然而,它已被用于许多pub-sub实现来维护实例/客户端的状态。 阅读关于Redis的内容

  1. 什么是redis以及何时使用它
  2. 为什么redis生态系统蓬勃发展?

4)Socket.io – 这是最实时的组件,也是你实际上用Ajax“replace”的主要组件。 我强烈的敦促你,即使你决定不使用任何一个其他组件,你仍然使用socket.io /其他套接字库。 Socket.io为浏览器/服务器提供了一个类似于Windows的winsock接口(类似于winsock)。 含义浏览器可以发送和接收消息。 只是FYI套接字很大程度上依赖于Ajax,但它简化了使用,并不需要你自己来主要连接状态,处理浏览器不一致等等。 尽pipe使用普通的Ajax可以编写更快的代码,但是更多的机会最终会引入更多的问题…但是,这是您的呼叫:)

  1. 为什么使用socket.io
  2. Ajax与Socket.io性能