我正在寻找一个可以处理后端主机和 WPF 前端客户端之间通信的开源框架。以下是我需要考虑的几点:
- 客户端是 WPF 桌面应用程序,主机是 C# 控制台应用程序,但也可以作为 Windows 服务运行
- 主机可以接受连接请求,客户端连接,但我仍然寻求双向通信能力。
- 客户端和主机不在同一个网络(需要通过互联网发送消息)
- 只有一个(可能多于但少于 10 个)客户端将连接到主机。
- 我希望能够处理以下通信模式:单向消息、双向请求/响应以及从主机到客户端的流式传输。
- 内容将由序列化的 POCO/DTO 和序列化的时间序列数据组成。每个序列化的 DTO 大小约为 400 字节,序列化的时间序列可能更大,可能有几兆字节。
- 某些消息将按计划发送,例如,主机每秒发送一个新的 DTO。(如果框架包含这样的调度机制那就更好了)
- 我希望能够将数据流式传输到客户端,例如客户端接收并实时更新其 GUI 上的数据。
我的问题是:处理这个问题的最好的基于 C# 的框架可能是什么?(我在 .Net 4.5 上运行)我不考虑 WCF,因为它对于我试图处理的东西来说似乎太厚了太复杂了。我也不想深入研究 Web 编程,因此不考虑 Rest/Soap 类型的框架。如果有人能推荐一个基于 tcp/websocket 的框架或类似的框架,我会很高兴,它的重量足够轻,可以比每秒更频繁地发送消息。
提前非常感谢。