2011-06-14 114 views
2

我在寫一個需要服務於許多客戶端的服務器。流量不是http(而是TCP之上的一些專有協議)。我對商業Web服務器(如IIS和Apache)不太瞭解。任何人都可以告訴我是否有可能編寫某種「擴展」在這些平臺之一上運行,這樣我就不必爲套接字編寫邏輯了?或者也許有另一種方法(不是IIS或Apache)做得更好?非http服務器

我的服務器通常會像Web服務一樣工作(獲取請求,查詢數據庫,發送響應),但有一種情況是它保持連接到客戶端套接字並在該套接字上以給定間隔發送更新。

它似乎是合理的方式來做到這一點,我只需要編寫我的邏輯沒有服務器的一般邏輯。有任何想法嗎?

謝謝!

+0

您打算使用哪種語言?套接字代碼不是太強硬,並且大多數語言都有大量樣本。如果你不想要所有的IIS或Apache進程的骨幹,你可以寫一些非常簡單,快速的代碼來完成你要求的Java,PHP,C++等等。 – ethrbunny 2011-06-14 23:25:44

+0

「我不是很熟悉與商業網絡服務器,如IIS和Apache「,只是爲了說明Apache不是一個商業網絡服務器,它是一個由非營利公司(Apache軟件基金會)領導的開源項目, – regilero 2011-06-15 13:24:24

回答

3

好問題,它也很好看,可以利用現有的Web服務器 - 您可以實現免費的可擴展性和穩定性。 我從來沒有這樣做過,但它應該完全可以在IIS中(我推薦v7 +,使它更容易)。

您可以通過管理工具設置一個新的網站,併爲其分配一個端口來監聽 - 這一點非常簡單。您應該將其綁定類型設置爲net.tcp(這是添加新網站的對話框中的下拉列表,您不能錯過它)。

然後,您可以使用模塊或處理程序來實現其餘的自定義功能。這篇文章Developing IIS 7.0 Modules and Handlers with the .NET Framework是一個很好的主題介紹。大部分有關編寫自定義處理程序和模塊的doco都集中在HTTP協議上,但是TCP和/或net.tcp中有一些片段浮動(因爲IIS和Apache是​​web服務器,而web是與同義,http)。可能有用的另一個資源是這樣的:Configure Request-Processing for a Web Server (IIS 7)

或者,你可能會考慮改變你的方法,做它作爲一個的net.tcp WCF service,這個你使用IIS的優惠,靈活性choosing the protocol(可以靜態配置,不需要編譯),並且不必編寫處理程序或模塊。