AngularJS和Websockets

时间:2013-07-22 22:14:07

标签: node.js angularjs websocket socket.io

我正在尝试学习HTML5 / Node.js / Express / MongoDB / AngularJS / Websocket这个似乎让大家现在兴奋的事情。

作为一个轻微的适得其反,我实际上很难在每种技术实际上做些什么(特别是将ejs作为模板引擎)。无处不在的Javascript和HTML!

特别是,我在分离websockets(或类似socket.io)和AngularJS提供的服务时遇到问题。他们似乎都试图提供动力而不必重新发送整个HTML页面。

他们是否相互替代?或者它们用于不同的目的?

此外,这两种技术似乎都转向绕过Express'路由的单页Web应用程序。那么,当使用Websockets / AngularJS时,Express会利用什么?似乎Express提供的传统路由取代了只改变AngularJS中单页的视图

2 个答案:

答案 0 :(得分:6)

AngularJS是一个javascript库,可以处理很多不同的事情。与WebSockets最相关的许多内容之一是在vanilla Javascript特性XmlHttpRequest之上的层。

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

答案 1 :(得分:0)

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

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

通过这种方式,我到达use Angular as a full-fledged MVC,包括路由。我没有使用具有此配置的websockets,或许我想要数据库(MongoDB或任何其他)通信和/或数据索引 - 对非关系数据库尤其有用。