0

我正在寻找一个可以处理后端主机和 WPF 前端客户端之间通信的开源框架。以下是我需要考虑的几点:

  • 客户端是 WPF 桌面应用程序,主机是 C# 控制台应用程序,但也可以作为 Windows 服务运行
  • 主机可以接受连接请求,客户端连接,但我仍然寻求双向通信能力。
  • 客户端和主机不在同一个网络(需要通过互联网发送消息)
  • 只有一个(可能多于但少于 10 个)客户端将连接到主机。
  • 我希望能够处理以下通信模式:单向消息、双向请求/响应以及从主机到客户端的流式传输。
  • 内容将由序列化的 POCO/DTO 和序列化的时间序列数据组成。每个序列化的 DTO 大小约为 400 字节,序列化的时间序列可能更大,可能有几兆字节。
  • 某些消息将按计划发送,例如,主机每秒发送一个新的 DTO。(如果框架包含这样的调度机制那就更好了)
  • 我希望能够将数据流式传输到客户端,例如客户端接收并实时更新其 GUI 上的数据。

我的问题是:处理这个问题的最好的基于 C# 的框架可能是什么?(我在 .Net 4.5 上运行)我不考虑 WCF,因为它对于我试图处理的东西来说似乎太厚了太复杂了。我也不想深入研究 Web 编程,因此不考虑 Rest/Soap 类型的框架。如果有人能推荐一个基于 tcp/websocket 的框架或类似的框架,我会很高兴,它的重量足够轻,可以比每秒更频繁地发送消息。

提前非常感谢。

4

2 回答 2

0

有什么理由不考虑 HTTP 吗?它只是通过 TCP,但您无需担心防火墙和其他东西,特别是考虑到您想通过 Internet 执行此操作的事实。自托管 ASP.NET Web API 可能是一个不错的选择。Fire and forget 和 request/response 可以相当直接地完成,对于流式传输,它具有 PushStreamContent。与 WCF 相比,ASP.NET Web API 是轻量级的,并且是开源的。只是一个建议,仅此而已。

于 2013-06-04T10:24:52.843 回答
0

我最终使用 ZeroMQ 在 WPF 客户端和服务器之间进行全双工通信。它是轻量级的,非常快速且非常可靠,可以满足我的需求。

于 2013-06-14T06:13:30.343 回答