【问题标题】:Implement a Comet server in C#用 C# 实现 Comet 服务器
【发布时间】:2010-12-16 12:38:46
【问题描述】:

我想知道是否有办法用 C# 编写彗星服务器。我有一个定期生成数据的 C# 代码,我想将这些数据推送到 java 应用程序。所以想将我的 C# 代码转换为彗星服务器。 还想知道是否实现了任何彗星服务器,让我们将C#应用程序和Java应用程序连接到它,以便C#应用程序可以通过彗星服务器将信息传递给Java应用程序。数据推送频率会很高,但单个消息的大小非常小:一个字符串值。

【问题讨论】:

  • 这是一项个人研究工作,所以买不起任何商业产品。商业产品“流中心”有一个很好的彗星服务器实现,但我需要的功能在他们的免费版本中不可用。

标签: c# java interop comet


【解决方案1】:

让我们直截了当。

我假设这是这个问题的后续:communication between Java and C#

这是在同一台机器上的应用程序之间的通信,只有字符串作为有效负载,对吧?

为什么选择彗星?为什么不直接通过套接字连接发送空终止字符串?实现 Comet 服务器绝非易事,仅用于不允许更直接通信的情况(即服务器到浏览器推送)。 Comet 在同一台机器上的应用程序间通信对于使用套接字轻松解决的解决方案来说非常复杂。

【讨论】:

    【解决方案2】:

    当然可以,但是用c#编写comet服务器是一项相当复杂的任务。我们已经构建了一个 (WebSync),并且花费了相当大的努力。如果你只是在做一个研究项目,你可以使用 OnDemand 版本,它是托管的,有 10 个免费用户。现在,服务器版本不是免费的,但相当便宜...

    对于它的价值,如果您决定推出自己的产品,您将查看 IHttpAsyncHandler,并且您需要进行一些线程管理来处理 IIS 中的默认线程池限制。

    【讨论】:

    • 如果有人读到这个,这是一个非常好的产品。了解更多。你不会后悔的。
    • 您可以使用 WebSync On-Demand SDK 来使用 Comet 服务器,例如 superfeedr 吗? blog.superfeedr.com/websockets-and-comet
    • 看起来他们有自己的实现,所以你不需要 WSOD 来使用它。当然,WSOD 可以与它​​结合使用,但他们正在使用自己的协议构建自己的实现;请注意,他们提到没有定义协议……这并不完全正确,因为 Bayeux 规范肯定是可用的。 (svn.cometd.com/trunk/bayeux/bayeux.html)。因此,他们也必须拥有自己的 SDK。
    【解决方案3】:

    您的实现可能需要一些示例源代码? PokeIn reverse ajax 库是一个开源项目,早期版本的源代码仍然可以在 codeplex 站点下载。

    显然,最新版本的 PokeIn 库是 .Net 框架最出色的库之一,您可以使用他们的免费社区版。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 2012-11-16
      相关资源
      最近更新 更多