使用 Angular.js 和 Node.js 构建实时应用程序哪种更好?

2023-11-24

我是 Angular.js 和 Node.js 的初学者,但我意识到有两种可能的方法来制作实时应用程序。第一个是使用 Socket.io,另一个是使用带有 setInterval() 函数的 RESTful 作为客户端解决方案。我使用两种替代方案构建了我的应用程序,但我不知道为什么使用其中一种更好。

我的控制器使用 Angular.js(Socket.io 替代方案):

function MyController($scope, socket) {

  socket.on('test', function(data){
    $scope.data = data;
    console.log($scope.data);
  });

}

我的控制器使用 Angular.js(RESTful 替代方案):

function MyController($scope, $http) {

  setInterval(function() {
    $http.get('/test.json')
         .success(function(data, status, headers, config) {
           $scope.data = data;
           console.log($scope.data);
         });
  }, 1000);

}

这些做事方式之间有什么区别? 提前致谢!


如果您想要一个完全实时的 Web 应用程序,那么套接字就是您的最佳选择。 Socket.io 或 SockJS 都是非常好的客户端。当不支持网络套接字时,它们能够正常降级,不过,您可以选择您想要使用的传输方法。

您必须构建数据订阅服务才能在所有用户之间传播更改。 Tower.js 和 Meteor 都使用响应式方法,并且它们在模型更改上使用事件侦听器。根据您想要此功能的复杂程度或强大程度,它们将提供不同的实现。

当尝试在同时连接的许多用户之间同步客户端和服务器端数据时,它确实变得越来越复杂。我建议您看一下这两个框架,看看它们是如何工作的,并可能复制它的部分或全部功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Angular.js 和 Node.js 构建实时应用程序哪种更好? 的相关文章

随机推荐

  • 如何让 Jersey 对响应消息正文使用 GZip 压缩

    我正在尝试编写一个简单的 Jersey 应用程序 它将文件从 Jersey 客户端发送到 Jersey 服务器并返回 但是 这些文件似乎仅在从客户端到服务器的途中进行编码 而不是在其他方式上进行编码 我想知道如何改变这种行为 我正在一个简单
  • 如何将docker容器中的目录挂载到主机上?

    在 docker 容器中挂载主机目录非常容易 但我需要相反的方式 我使用 docker 容器作为开发 WordPress 插件的开发环境 这个 docker 容器包含运行 WordPress 所需的一切 MySQL Apache PHP 和
  • 将数组值转换为对象键

    我做了一个 get 返回一个 json 对象 如下所示 data 2016 Pass Fail Rates by Test Centre Passes No ID Fails Fail Dangerous Total Sometown 8
  • 使用超类类型作为子类实例

    我知道这个问题已经被问了很多次 但在我看来 通常的答案远不能令人满意 给定以下类层次结构 class SuperClass class SubClass extends SuperClass 为什么人们使用这种模式来实例化子类 SuperC
  • android studio设置java版本1.7

    我正在尝试将 java 版本 1 7 与 android studio 一起使用 但不幸的是它无法正常工作 如果将版本设置为File gt Other settings gt Default project structure to Pro
  • 如何在 Cucumber Java 的步骤之间传递变量值?

    我有一个变量 我想在所有步骤中传递该变量 任何人都可以使用代码片段示例来建议如何在步骤之间传递变量值 任何帮助将不胜感激 在 Cucumber for Java cucumber jvm 中 在步骤之间共享数据的预期方式是使用依赖项集成 D
  • 在其自己的成员函数中构造类时,如何强制类模板参数推导?

    考虑以下代码 struct A template
  • Servlet 容器和类路径

    Servlet 容器的类路径集是什么 根据我的理解 涉及三个组成部分 JAR 文件位于libServlet 容器的目录 然后是 Servlet 中的类WEB INF classes和 JAR 文件在WEB INF lib目录 班级在libS
  • 非空字段的流畅 Nhibernate Automap 约定

    有人可以帮忙吗 我如何指示 automap 不为空 一个专栏 public class Paper Entity public Paper DomainSignature NotNull NotEmpty public virtual st
  • 使用 jQuery 获取最后一个可见元素

    table tr class here td 1 td tr tr class here td 2 td tr tr class here style display none td 3 td tr tr class here style
  • PDO 错误消息? [复制]

    这个问题在这里已经有答案了 这是我的代码片段 qry INSERT INTO non existant table id score SELECT id 40 FROM another non existant table WHERE de
  • 在 Swift 中,Array [String] 切片返回类型似乎不是 [String]

    我正在切片一个字符串数组并将其设置为 String 变量 但类型检查器抱怨 这可能是编译器错误吗 var tags this is cool tags 1 lt 3 var someTags String tags 1 lt 3 用范围作为
  • Symfony2 - 动态表单选择 - 验证删除

    我有一个下拉表单元素 最初它是空的 但在用户进行一些交互后 它会通过 javascript 填充值 这一切都工作正常 但是 当我提交时 它总是返回验证错误This value is not valid 如果我将项目添加到表单代码中的选择列表
  • 如何将索引器与具有参数和函数调用的扩展方法一起使用

    是否可以使用indexers with extension方法 例如 仅将其视为示例 public static object SelectedValue this DataGridView dgv string ColumnName re
  • 如何检测 Protocol Buffer 消息何时被完全接收?

    这是我的一个分支其他问题 如果您愿意 请阅读它 但这不是必需的 基本上 我意识到 为了在大消息上有效使用 C 的 BeginReceive 我需要 a 首先读取数据包长度 然后准确读取那么多字节 或者 b 使用数据包结尾分隔符 我的问题是
  • 的替代方案

    The tag从来都不是官方标准 现在已被所有浏览器完全放弃 是否有符合标准的方法使文本闪烁 blink text animation 1s blinker linear infinite webkit animation 1s blink
  • 当 php 脚本仍在执行时回显消息

    我有一个使用 cURL 的 php 脚本 执行大约需要 10 15 分钟 它的作用是 它解析大约 1000 个页面以查找特定的匹配项 并且在整个脚本中我都会回显诊断消息 例如 转到下一页 找到匹配项 加载页面时出错 它现在的工作方式 也是正
  • 如何修复尝试通过改造抛出 OutOfMemoryError 时抛出的 OutOfMemoryError

    我正在使用 Retrofit 在我的应用程序中下载一些媒体文件 如视频 mp3 jpg pdf 当我想下载 55MB 的 mp4 格式的大文件时 这是一个问题 当我想下载这个文件时 我收到如下错误 OutOfMemoryError thre
  • 如何在 C# 中使用 REST,包括 PUT、POST 和 DELETE?

    我有一个 REST Web 服务 需要在 C 中使用 不过 我需要的支持不仅仅是 GET 请求 我需要 REST 完成的所有操作 包括 GET PUT POST 和 DELETE 与之交互的最佳方式是什么 我没有看到 HTTPRequest
  • 使用 Angular.js 和 Node.js 构建实时应用程序哪种更好?

    我是 Angular js 和 Node js 的初学者 但我意识到有两种可能的方法来制作实时应用程序 第一个是使用 Socket io 另一个是使用带有 setInterval 函数的 RESTful 作为客户端解决方案 我使用两种替代方