使用NodeJS编写实时应用程序

即时通讯使用NodeJS构buildRT web应用程序。 来自Rails,我感到爱上了NodeJS和Async JS编程。

使用Node进行一些实验,然后在search工具和资源以便使用的时候,我对那里的东西感到不知所措。

我在那里发现了许多图书馆和组件,而且对于如何构build一个大型的精心编写和实现的RT web应用程序感到困惑。

所以应用程序将使用Express框架运行在NodeJS

我阅读了关于knockout.js ,一个客户端库提供实时的东西,如自动UI刷新,我想我可以把它与jQuery结合起来。 另外,我发现socket.io 。 作者说: Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. 所以socket.io是关于兼容性的。 那backbone.js呢? 它在哪里?

有这么多东西,我感到震惊。 我应该学什么? 哪些模块值得学习? 我专注于NodeJS和Express,但大多数书籍/屏幕录像覆盖了旧版本的nodejs。 所以我即将被官方API引导。 现在我在这里问你的build议,并组织某种方式所有的信息。 纠正我,如果我的假设是不精确的,请指出我正确的方向,并随意build议任何其他模块,可以帮助我的学习。

提前致谢

从所有的客户端(浏览器)库和像jQuery,骨干,淘汰赛等技术中分离node.js服务器端库(通过npm等)可能是有用的…当你想到它。 甚至在浏览器和服务器之间公开一个持久的套接字连接的socket.io(为了避免轮询),也不会规定你使用的是什么客户端技术。

专注于从您的服务器暴露一个坚实的web-api( 随机的例子 ),您的客户端技术可以交换,增强等,而不会影响服务器。 他们相交的唯一的地方就是如果你使用像Jade这样的视图技术。 这也是一个纯粹的分离,服务器只是提供客户端文件,而您的客户端是一个更厚的JavaScript应用程序(使用淘汰赛,jQuery等…)调用一个好的服务器Web API的选项。

一些人尝试统一客户端和服务器模型 – 例如, 本文使用主干和节点。 这取决于你使用多less数据来说明这是否可行,但它确实将客户端和服务器耦合起来,使得服务器有状态,可能会有负面影响(扩展,需要亲和力等)。 就我个人而言,我对这么多的魔法(绑定,状态,同步等等)保持警惕。 节点是关于保持简单,轻松和快速的事情。 这是一个快速的前端networking服务器。

我的2美分(有些可能不同意)。 从服务器上的节点开始,select你的存储(mongoDb等)。 devise一个可靠的RESTful(超媒体)API – 一个好的webapi,不pipe客户端。 然后开始一个基本的HTML / CSS / JS,也许jQuery的客户端,并添加像敲除等东西…当你扩大你的客户端技能。 这将允许您replace您的客户端技术,而不受服务器的影响,因为新技术正在发生变化(他们将会)。

这是一个devise良好的系统的标志 – 能够更换组件/子系统而不用重写所有的东西:)

希望有助于澄清一些雾:)

如果您专注于实时JavaScript应用程序,您可能需要查看meteor: http : //meteor.com/