2010-07-30 222 views
0

首先,這是對Should I use WCF or raw sockets?的後續問題。感謝所有回覆的人,這對我幫助很大!.NET互操作性問題

最近,我的一些要求發生了變化。現在我必須除了支持Windows以外,還要支持Linux客戶端。我必須在服務器端使用.NET作爲要求。我還需要保持與客戶的持續連接(或輪詢)。我想請求社區對以下選項的反饋:

  1. 使用更簡單的pub-sub模型版本。我在客戶端不斷輪詢的服務器上有一個Web服務(我預先打包了我需要在客戶端運行的腳本/二進制文件,並通過服務從服務器發出命令)。服務器將客戶端的任務放入隊列中,客戶端將其選中。這種模式變得高度互操作,因爲我可以在任何平臺上編寫客戶端。另外,由於http,我不必擔心客戶端的防火牆。不過,我擔心的是投票(我可能必須每隔幾秒輪詢一次,對於數千位客戶)。我讀了Comet,但不幸的是,在C#中實現它似乎有很多努力。

  2. 使用正常套接字,從客戶端創建持久連接並使用這些管道。在這裏,我擔心持續連接(我需要他們來控制客戶端,他們在NAT後面)。通常情況下,我看到有人爲每個連接創建一個線程,我認爲這不是可伸縮的。我對麼?異步調用/套接字是否會選擇更好的方式?

任何意見將不勝感激。

回答

0

使用標準套接字進行通信將在不同的操作系統之間移植。普通的TCP套接字是一項非常成熟的技術。您也可以使用Web服務(http),這些服務位於套接字之上。穿越互聯網時,Web服務更實用(防火牆問題等)。

+0

謝謝seand,我決定用簡單的TCP套接字去! – Andy 2010-08-02 09:29:15