Nodejs vs SignalR:为啥我们需要服务器端 javascript?

Posted

技术标签:

【中文标题】Nodejs vs SignalR:为啥我们需要服务器端 javascript?【英文标题】:Nodejs vs SignalR: why do we need server-side javascript?Nodejs vs SignalR:为什么我们需要服务器端 javascript? 【发布时间】:2012-02-22 01:21:37 【问题描述】:

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

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

【问题讨论】:

这里似乎有些混乱。 Node.js 是一个开发平台,而 SignalR 是一个用于 ASP.NET 的库。更好的比较是 node.js+socket.io 与 ASP.NET+SignalR。请问这个问题可以更新澄清吗? 真假,SignalR是.NET的库。 【参考方案1】:

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

    它使堆栈变平。现在几乎所有网站都必须在浏览器上安装 javascript,如果您也在服务器上使用它,您可以从必须精通的语言中剔除一种语言。

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

    不是微软。我个人喜欢微软为开发社区所做的一切。他们制作了出色的工具,并且是周围最好的框架和语言之一。话虽如此,有些人就是喜欢讨厌微软。

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

除了上述之外,还有一个故事是,由于线程模型,您无法在 IIS 上扩展长轮询请求。这有一些道理,但是通过good code design 和一些服务器调整,您基本上可以解决这些问题。

【讨论】:

我读到 Hanselman 的博客文章hanselman.com/blog/… 说,一个 ASP.NET/SignalR 聊天应用程序可以为数万或数十万客户提供服务,这真是太神奇了。我没有深入研究他们是如何做到这一点的,但它与 Nodejs 的“可扩展性”如何做到这一点很接近...... 如果您使用的是 ASP.NET MVC 之类的东西,您需要了解 JavaScript、html、CSS、C# 和 Visual Studio。在服务器端使用 JavaScript,您可以将其简化为 JavaScript、HTML、CSS。 asp.net 和 .net 通常实际上并不是 MS 独有的东西。查看用于 IDE 的 sharpdevelop 和 monodevelop 以及用于替代 .net 运行时的 mono。这去掉了第 3 点和第 4 点。另外,我不相信一种语言范式。除非您刚刚开始学习多种语言,否则学习多种语言并不难。至于 2,从 JSON 创建一个 .net 对象真的没有那么难。此外,请查看 SignalR 以进行长轮询和实时通信替代 @ruffrey 你在说什么? asp.net/open-source您也可以使用 OWIN 自行托管 SignalR。 @cbmeeks 针对不同工作的不同工具。我向你保证,沃尔玛在幕后有一个非常严肃(且昂贵)的数据库设置,但这并没有阻止他们使用 Node.js 优化他们的移动网站。您可能会发现所有成功部署 Node.js 的大型企业都是如此。我怀疑他们中的许多人在 Mongo 中存储了任何东西。

以上是关于Nodejs vs SignalR:为啥我们需要服务器端 javascript?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十四)之漏掉的客服消息

signalr和node.js哪个好

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室 补充:历史记录 和 消息提醒

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室 添加表情群聊功能

用于asp.net MVC聊天应用程序的signalR vs html5 websockets

为啥我们必须为 ReactJS 安装 NodeJS