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

fun*_*guy 1 redis node.js laravel angularjs

我试过这个教程:

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

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

困扰我的问题是为什么要尝试利用所有这些技术来实现实时功能?使用这个(Node.js + Angular + Redis + Socket.io)堆栈有什么好处,比方说,简单的AJAX调用到后端?对于您使用此堆栈的其他用例?

Dor*_*don 9

您列出的每种技术都不是实时所必需的,但我认为您可能会发现有助于进一步了解每种技术及其使用.

每种技术都有它的优点和用途.我建议你分别对每种技术进行更深入的阅读.你总是可以使用ajax,但是你错过了每种技术的许多优点.所有这些都经过高度测试,干燥和组件化,这意味着您可以更快地生产并重新投入更少的轮子.

此外,这些技术往往可以很好地协同工作,并且基于许多类似的概念.

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

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

2)角度 - 角度是你的前端mvc.有许多框架(Ember,Backend和许多其他框架).你可以选择任何人或选择任何人,但这不是Ajax而是.有框架带来更多负载,这是双向数据绑定,组件,数据层等等.再次构建一个高影响力的专业应用程序的伟大构建块.

  1. 为何使用棱角分明
  2. 使用角度的三个原因
  3. 角度比jquery更好

3)Redis是一个nosql数据库.实时与它几乎没有关系,但它可以用于此.但是,它已被用于许多pub-sub实现,以维护跨实例/客户端的状态.阅读有关Redis的内容

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

4)Socket.io - 这是最实时的组件,也是您实际可以用Ajax"替换"的主要组件.我强烈建议你,即使你决定不使用任何一个其他组件,你仍然使用socket.io/another套接字库.Socket.io为浏览器/服务器提供类似socket的接口(类似于windows上的winsock).意思是浏览器可以发送和接收消息.只是FYI套接字在很大程度上依赖于Ajax,但是它简化了使用,并且不需要您自己主导连接状态,处理浏览器不一致等等.虽然您可以使用普通的Ajax编写更快的代码,但您最终可能会引入更多问题......但是这是您的通话:)

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