.NET互操作性问题

时间:2010-07-30 06:33:35

标签: sockets

首先,这是Should I use WCF or raw sockets?的后续问题。感谢所有回复的人,这对我帮助很大!

最近,我的一些要求发生了变化。出现的主要障碍是,除了Windows之外,我现在还必须支持Linux客户端。我必须在服务器端使用.NET作为要求。我还需要维护与客户端(或轮询)的持久连接。我想请求社群提供以下选项的反馈:

  1. 使用更简单的pub-sub模型。我在服务器上有一个Web服务,客户端不断轮询(我预先打包我需要在客户端运行的脚本/二进制文件,并通过服务从服务器发出命令)。服务器将客户端的任务放入队列中,客户端将其拾取。这个模型变得高度可互操作,因为我可以在任何平台上编写客户端。此外,由于http,我不必担心客户端的防火墙。但是,我担心轮询(我可能需要每隔几秒轮询一次,对于1000个客户端)。我读到了关于Comet的内容,但不幸的是,在C#中实现它似乎付出了很多努力。

  2. 使用普通套接字,从客户端创建持久连接并使用这些管道。在这里,我关注持久连接(我需要它们来控制客户端,它们在NAT之后)。通常,我看到人们为每个连接创建一个线程,我认为这是不可扩展的。我对么?异步调用/套接字是否选择了更好的方法?

  3. 非常感谢任何评论。

1 个答案:

答案 0 :(得分:0)

使用标准套接字进行通信将在不同的操作系统之间移植。普通的tcp套接字是一种非常成熟的技术。您还可以使用Web服务(http),这些服务位于套接字之上。通过互联网时,Web服务更实用(防火墙问题等)。

相关问题