2012-01-30 149 views
84

因爲我瞭解Node.js,所以我一直都很喜歡它。但是今天我發現了大約SignalR,它爲ASP.NET提供了一種替代的異步可伸縮實時模型。Nodejs vs SignalR:爲什麼我們需要服務器端的JavaScript?

據我所知,Node.js優於SignalR的主要優勢是在客戶端 - 服務器之間共享代碼(另一個優勢應該是它是跨平臺的),而SignalR的主要優勢是更加成熟框架和更好的工具(IDE)支持。所以我想知道:如果SignalR在這裏,我們是否需要Windows上的Node.js?有沒有Node.js的優點我不知道?

+23

這裏似乎有些混亂。 Node.js是一個開發平臺,而SignalR是一個ASP.NET庫。更好的比較是node.js + socket.io與ASP.NET + SignalR。請問這個問題可以更新澄清? – leggetter 2012-01-30 19:46:32

+6

真假,SignalR是.NET的一個庫。 – davidfowl 2012-02-17 10:04:18

回答

99

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

  1. 它使堆疊變平。現在幾乎任何網站都必須在瀏覽器上安裝JavaScript,如果您在服務器上也使用它,則可以將批量中的一種語言剪掉,您必須熟練掌握。

  2. 消息傳遞是非常自然的。 JSON無處不在!特別是與使用JSON的文檔數據庫結合使用時,所有消息傳遞都只是成爲JSON對象。這樣可以減少整個系統中必須發生的消息中介數量。

  3. 這不是微軟。我個人喜歡微軟爲開發社區所做的一切。他們製作出奇妙的工具,並且是最好的框架和語言之一。話雖如此,有人喜歡討厭微軟。

  4. 成本。有許多好方法可以免費或非常便宜地獲得Microsoft工具(Express版本和Biz Spark)。與使用Microsoft工具相關的成本仍然較高。我相信這種成本在大多數情況下都是值得的,但並不是所有人都同意。

除了上述內容,還有一個故事是由於線程模型而無法縮放IIS上的長輪詢請求。這有一些事實,但good code design,和一些服務器的調整,你可以主要解決這些問題。

+6

我閱讀了Hanselman的博客文章http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx,ASP.NET/Signalal聊天應用程序可以服務數十或數十萬客戶端,這真的很棒。我沒有深入瞭解他們是如何做到這一點的,但它與「可擴展」的Nodejs可以做得如何接近...... – Vimvq1987 2012-01-30 09:30:54

+2

你是什麼意思「_flattens the stack_」? – 2012-12-21 16:53:25

+7

如果您使用的是ASP.NET MVC之類的東西,您需要了解JavaScript,HTML,CSS,C#和Visual Studio。在服務器端使用JavaScript,您可以將其減少爲JavaScript,HTML,CSS。 – 2013-01-04 15:47:51

相關問題