2011-05-10 58 views

回答

-2

我不認爲這是在.NET具有類似的node.js或Ruby的EventMachine的或Python扭曲:-(事件觸發IO支持任何框架。

+3

@kazimanzurrashid:凡編碼問等效來socket.io,不Node.js的.. – billy 2013-01-21 13:56:20

8

.NET有許多方法可以實現100%類似異步設計Node.js的

SocketBeginSend/EndSend和較高性能SendAsync,或StreamBeginRead/BeginWrite方法。這些都是非常類似於Node.js的

C#5.0正在引入一種全新的異步設計,並提供語言支持,比以上更易於使用。您可以在Async CTP中玩一下它的測試版。

+0

代表和新的C#Async與我提到的框架不一樣。這些框架在.NET中使用單個非阻塞線程,每個客戶端都由一個單獨的線程處理,這是根本區別。 – kazimanzurrashid 2011-05-10 15:21:29

+1

糟糕,我忘記了node.js使用單個線程。但是,.NET不會在單獨的線程上處理每個客戶端 - 它使用線程池並且永遠不會阻塞。如果你在訪問全局狀態時鎖定,你應該沒問題。此外,C#異步CTP使用您啓動I/O的任何執行上下文 - 如果您的上下文是單線程的,它將僅爲您的所有連接使用該單線程。 – 2011-05-10 16:21:03

4

剛剛從mix11上看到一段視頻,他們談到了Manos de Mono。這是一個C#框架,模仿tornadoweb,靈感來自像node.js這樣的框架。

https://github.com/jacksonh/manos