2015-06-22 72 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

伟大的答案和资源 –