2010-02-23 32 views
7

我想構建一個基於彗星的應用程序,並希望它能夠支持多達1000個併發連接。據我所知,Tornado的優勢在於不會爲每個請求產生一個線程,因此可以輕鬆處理數千個長的輪詢請求。是否有任何開源的基於C#的非阻塞,基於事件的Web服務器像Tornado?

+0

您是否需要該服務才能在臺式機上運行? IIS隨Windows Server一起提供,並且應該能夠輕鬆處理這種負載。 – 2010-02-24 01:51:52

+0

IIS是否爲每個HTTP請求產生一個線程?據我所知,這就是爲什麼Tornado比Apache更適合長時間輪詢系統的原因。我假設IIS做同樣的事情。 – 2010-02-24 02:07:11

+3

IIS不跨越每個HTTP請求的線程,天堂沒有。它確實使用IO完成端口。 – 2010-05-11 21:31:26

回答

8

我認爲Manos de Mono是你在找什麼。它還很早,但看起來很有希望。

3

要使用ASP.NET/IIS處理長輪詢請求,您需要實現自定義HTTP處理程序並實施IHttpAsyncHandler。這允許您使用ASP.NET工作線程開始處理請求,然後在等待事件觸發響應時將線程返回到線程池。

http://msdn.microsoft.com/en-us/library/ms227433.aspx

異步HTTP處理程序可以立即開始一個外部進程(例如,方法調用到遠程服務器),而處理機繼續處理。處理程序可以繼續而無需等待外部過程完成。

ASP.NET MVC還提供了一個AsyncController來簡化在此框架中實現異步請求處理。

http://msdn.microsoft.com/en-us/library/ee728598.aspx

0

,你可以嘗試用Mongrel2點NET綁定。它是非常快速的語言不可知網絡服務器。它通過zeroMQ工作。

相關問題