2013-04-18 232 views
3

我是一位經驗豐富的C#開發人員,但到目前爲止我還沒有開發TCP服務器應用程序。現在,我必須開發一個高度可擴展的高性能服務器,它可以處理至少5-10個併發連接:從GPS設備通過GPRS獲取字節數據。使用Wcf服務的Tcp服務器

一個共同的溝通過程應該是這樣的:

GPS設備發起到我的服務器的連接 我的服務器的答案,如果我想獲得的數據 裝置發送GPS數據 我的服務器發送報告,設備有關獲取它(SG像校驗) 從GPS,reportm獲得新數據,並再次出現這種情況,再後來 GPS設備關閉連接 所以,在我的服務器我需要

跟蹤連接/活動的客戶端 關閉任何客戶端從服務器端 趕上事件,當一個設備關閉連接 獲取字節數據 發送數據到客戶端 我開始通過互聯網瞭解這個主題,但它似乎是我的噩夢。有很多方法,但我無法找出哪個是最好的。

異步套接字方法對我來說似乎是最好的,但是在這種異步樣式中編寫代碼很糟糕,並且不容易調試。

所以我的quetsion是:你認爲在C#中實現高性能TCP服務器的最佳方式是哪一種?你知道有這麼好的開源組件嗎? (我嘗試了幾個,但我找不到一個好的。)

在此先感謝,任何專家的答案將appriciated!

回答

0

您可以使用兩個建議的想法。

  1. WCF TCP(雙工?) - 在這裏你可以有一個異步模式,客戶端和服務器都可以互相調用。 Defintely需要一些管道參與,但有很多文件。

  2. RESTFUL - 我認爲這可能是更好的選擇。這非常容易實現異步,而且由於REST的無狀態特性,開銷很小。僅供參考,您可以使用TCP進行此操作,但HTTP可能是更好的選擇。