2011-06-14 88 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(可以静态配置,不需要编译),并且不必编写处理程序或模块。