[英]Node.js for .NET
我知道像Edge.js這樣允許C#和Node.js連接的項目,但我說的是不同的東西。 是否有一個C#庫,它允許您在C#中構建可伸縮的,非阻塞的I / O,單線程,異步事件服務器,類似於您可以使用Node.js構建的服務器? 一個庫,它還具有Node.js的唯一事件模型,用於用戶代碼的單線程,用於文件/網絡事件和本機代碼的多線程(如果我錯了,請糾正我)。 當然我知道ASP和WCF,以及像這樣的 OSS項目,但我正在尋找能夠提供與Node.js相當的性能的東西,Node.js是一種到C#的Node.js端口。 你知道任何這樣的圖書館,它需要什么來建立它?
單螺紋還是多螺紋?
如果您希望使用單線程托管進程使用APC和完成端口完成所有工作,則必須手動編寫代碼。 建立它將是冒險和棘手的。 - 薩姆索爾頓
顯而易見,單線程使代碼更容易編寫,因為您不需要使用鎖和互斥鎖。 只有一個線程讀取/修改程序狀態數據,這使得事情變得簡單。 所有計算都在單獨的線程上進行,並在結果准備好后返回主線程。 操作完成后,所有文件/網絡事件都會跳出並返回主線程。
相關但不同的問題:
可能有用的項目:
我已將此問題發布到您的第一個相關問題,這也可以回答您的問題:
這是一個用VB.NET和C#編寫的開源示例:
https://github.com/perrybutler/dotnetsockets/
它使用基於事件的異步模式(EAP),IAsyncResult模式和線程池(IOCP)。 它會將消息(消息可以是任何本機對象,如類實例)序列化/編組為二進制數據包,通過TCP傳輸數據包,然后在接收端反序列化/解組數據包,這樣您就可以使用本機對象來處理。 這部分有點像Protobuf或RPC。
它最初是作為實時多人游戲的“網絡代碼”開發的,但它可以用於多種用途。 不幸的是我從來沒有使用它。 也許其他人會。
源代碼有很多注釋,因此應該很容易理解。 請享用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.