我们目前正在为现有系统开发API。
它基本上包装了一些网络请求作为一个易于使用的图书馆,第三方公司应该能够使用我们的产品。
作为API的一部分,有一个事件机制,服务器可以通过一个不断运行的套接字连接调用客户端。
为了最小化服务器上的负载,我们希望每台计算机只有一个连接。目前每个进程都有一个套接字打开,如果您有多个使用API的应用程序,这可能最终导致加载问题。
因此,我的问题是:如果我们希望将API部署为一个独立的程序集,那么解决问题的最佳方法是什么?
我们想到了几个选择:
这些看起来都不太理想。
有更好的主意吗?
发布于 2010-06-09 19:13:14
我们提出的最佳解决方案是创建一个打开命名管道的windows服务,通过一个套接字连接管理多个客户端进程。
然后,我们的API将能够检测服务是否正在运行/安装,并返回到为客户端创建自己的连接。
第三方可以决定他们是否希望将服务与他们的产品捆绑在一起,但是我们系统的核心应用程序将被安装。
如果没有人有更好的选择的话,我会在几天内把这作为答案。我希望有一种方式来执行我们的组装作为一个新的过程,但所有的道路做这似乎不太可靠。
发布于 2010-06-07 18:44:36
你是说像Net.TCP端口共享这样的东西吗?
发布于 2010-06-07 18:47:33
您可以在打开套接字时修复客户端端口,比如45534。由于一个端口只能由一个进程打开,所以一次只能打开一个进程到服务器的套接字连接。
https://stackoverflow.com/questions/2992117
复制相似问题