【问题标题】:AngularJS and WebsocketsAngularJS 和 Websockets
【发布时间】:2013-07-21 19:48:00
【问题描述】:

我正在尝试学习 HTML5/Node.js/Express/MongoDB/AngularJS/Websocket 的东西,这似乎让每个人都兴奋不已。

作为一个轻微的适得其反,我实际上很难在每种技术的实际作用上画线(尤其是使用 ejs 作为模板引擎)。 Javascript 和 HTML 无处不在!

特别是,我无法区分websockets(或类似socket.io)和AngularJS 提供的服务。他们似乎都试图在不必重新发送整个 HTML 页面的情况下提供活力。

它们是相互替代的吗?还是它们有不同的用途?

此外,这两种技术似乎都朝着绕过 Express 路由的单页 Web 应用程序发展。那么,Express 在使用 Websockets/AngularJS 时利用了什么?似乎 Express 提供的传统路由被替换为仅在 AngularJS 中更改单页中的视图

【问题讨论】:

    标签: node.js angularjs websocket socket.io


    【解决方案1】:

    AngularJS 是一个 JavaScript 库,它可以做很多不同的事情。与 WebSockets 最相关的众多事物之一是原生 Javascript 功能 XmlHttpRequest 之上的层。

    XmlHttpRequest 和 WebSockets 都是与服务器交换数据而无需重新加载网站的技术。不同之处在于 XmlHttpRequest(通常称为 AJAX)遵循请求-响应模型(客户端发出请求,服务器响应),而 WebSockets 使用双向通道,客户端和服务器都可以随时发送消息。

    【讨论】:

    • 如果我可以将这些东西归为一类,那么:我会将 Websockets 用于实时游戏之类的事情,或者在服务器/客户端之间进行许多、小的、持续更新的事情。我会使用 Angular 构建丰富的网络应用,这些应用需要异步服务而无需页面刷新,但不一定像在线游戏那样恒定或持久。
    【解决方案2】:

    Express.js 可以做很多事情,但它作为 node.js Web 服务器的速度对我来说是最大的好处。

    当我制作一个 Angular 应用程序(通常使用 Yeoman 构建)时,我首先安装一个 express 应用程序并运行 Yeoman 的 angular-generator,然后编辑 app.js 以删除视图/路由引用并提供 /dist 文件夹yeoman 在 Grunt 测试后创建并缩小所有内容。

    这样,我就到了use Angular as a full-fledged MVC,包括路由。我没有使用这种配置的 websockets,但也许我想用于数据库(MongoDB 或任何其他)通信和/或数据索引 - 对于非关系数据库特别有用。

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多