我必須開發一個使用TCP套接字的遊戲服務器應用程序。我一直在做一些研究,看看哪些技術最適合我的需求,也是在SO的幫助下。C#套接字vs NodeJS Socket.IO
目前我有兩個選擇留給自己。這是要麼在C#中創建一個服務器應用程序SocketAsyncEventArgs
或與NodeJS和Socket.IO
。
我選擇了NodeJS,因爲我想他們已經完成了所有的努力並優化了他們的套接字庫。所以我所要做的就是簡單地使用它,也許稍微調整一下。
但我的主要問題是,NodeJS會足夠好嗎?
服務器需要是高性能套接字應用程序。我知道當我使用C#時,我可以得到很好的結果。但是,在C#套接字類或NodeJs Socket.IO之間真的存在巨大差異嗎?我應該期望從NodeJS減少嗎?
我找不到關於Winsock vs NodeJS/Socket.IO的任何信息。所以我希望這裏的任何人都對這兩件事有所瞭解。當你比較它們時,我可以期待從這兩者中得到什麼。
有關服務器將執行的操作的一些其他信息。
服務器將基本上將數據從一個客戶端傳遞到另一個客戶端。事情是,一個客戶端將發送大約30
到40
小包(〜300字節)到服務器每秒。服務器會將每個請求發送給另一個客戶端。但同時另一個客戶端會每秒發回相同數量的數據。
服務器只是兩個客戶端之間的某種中介。同時,大約500對客戶端可以連接到服務器。所有通過服務器向對方發送數據。這就是爲什麼我需要一個性能良好的socket應用程序。我認爲CPU在我的情況下不會有問題,因爲它不會進行任何繁重的計算。
我添加了一些關於服務器對我的帖子做什麼的附加信息。我們也計劃做我們自己的基準。我只是希望那裏已經有了一些信息,因爲總能看到別人試過的東西以及他們從中得到了什麼樣的結果。 – Vivendi
我懷疑如果寫得很好(即一切異步),任一方法都將足夠快。最後.NET和Node都是JIT編譯的,垃圾收集使用異步API。 – Richard