Node.js vs SignalR:为什么我们需要服务器端JavaScript?


90

自从了解Node.js以来,我一直是它的粉丝。但是今天,我发现了SignalR,它为ASP.NET提供了另一种异步的-可伸缩的实时模型。

据我所知,与SignalR相比,Node.js的主要优势是在客户端-服务器之间共享代码(另一个优势应该是跨平台),而SignalR的主要优势是更成熟的框架和更好的框架工具(IDE)支持。所以我想知道:如果SignalR在这里,我们是否需要Windows上的Node.js?我不知道Node.js有什么优势吗?


27
这里似乎有些混乱。Node.js是一个开发平台,而SignalR是ASP.NET的库。更好的比较是node.js + socket.io与ASP.NET + SignalR。可以将这个问题更新为澄清吗?
leggetter 2012年

6
对错,SignalR是.NET的库。
davidfowl 2012年

Answers:


107

SignalR是Socket.IO和Node.js的可行替代方案。但是,还有其他原因需要在服务器上使用javascript。

  1. 它使堆栈变平。如今,几乎所有网站都必须在浏览器上安装javascript,并且如果在服务器上也使用javascript,则可以从一种必须精通的语言中减少一种语言。

  2. 消息传递是很自然的。JSON无处不在!尤其是与使用JSON的文档数据库结合使用时,所有传递的消息都变成了JSON对象。这样可以减少整个系统中必须进行的消息代理数量。

  3. 不是微软。我个人喜欢Microsoft为开发社区所做的工作。它们是出色的工具,也是周围最好的框架和语言之一。话虽如此,有些人只是喜欢恨微软。

  4. 成本。有很多好的方法可以免费或非常便宜地获得Microsoft工具(Express Edition和Biz Spark)。使用Microsoft工具仍然存在较高的成本。我相信,在大多数情况下,这笔费用值得提高生产率,但并非所有人都同意。

除了上述内容外,还有一个故事说,由于线程模型的原因,您无法在IIS上扩展长时间的轮询请求。这有些道理,但是通过良好的代码设计和一些服务器调整,您基本上可以解决这些问题。


6
我阅读了Hanselman的博客条目hanselman.com/blog/…,其中一个ASP.NET/SignalR聊天应用程序可以为成千上万的客户提供服务,这真是了不起。我没有更深入地了解它们如何做到这一点,但是与“可扩展的” Nodejs的实现方式紧密相关……
Quan Mai

7
如果使用的是ASP.NET MVC之类的内容,则需要了解JavaScript,HTML,CSS,C#和Visual Studio。在服务器端使用JavaScript,您可以将其简化为JavaScript,HTML,CSS。
DanielLidström2013年

4
通常,asp.net和.net实际上不是MS唯一的东西。查看IDE的SharpDevelop和Monodevelop,以及替代的.net运行时。这取出了点3&4。另外,我不相信一种语言范式。除非您刚入门,否则学习多种语言并不难。至于2,从JSON创建.net对象确实并不难。另外,请检出SignalR以进行长时间的轮询和实时通信替换
bbqchickenrobot

7
@ruffrey你在说什么?asp.net/open-source您还可以使用OWIN自托管SignalR。
Timothy Strimple

4
@cbmeeks用于不同工作的不同工具。我向您保证,沃尔玛在幕后建立了非常认真(且昂贵)的数据库,但这并没有阻止他们使用Node.js优化其移动网站。您可能会发现,所有成功部署Node.js的大型企业都是如此。我怀疑其中许多存储在Mongo中的东西。
蒂莫西·斯特劳夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.