【发布时间】:2017-11-24 10:20:20
【问题描述】:
我目前正在阅读 WCF 和 Sockets(此处和 MSDN 上)。
据我所见,WCF 比套接字慢,但更易于使用。
有以下情况:
- 500 位客户
- 客户端向它响应的服务器发送请求
- 客户端还会向服务器发送状态报告
服务器响应的范围可以从收到消息到向它们传输 200 MB 数据。
所有通信都经过加密(例如 SSL)
我的目标是尽可能安全地处理所有通信(就异常、超时等问题而言是安全的),并且易于维护程序。
还有较少的数据传输密集的请求/响应需要快速(因此只需传输几 KB 的数据)。
我的问题是,WCF 比套接字慢.....WCF 是否仍然足够快以处理如此大的系统/情况,或者套接字会是更好的方式吗?
编辑: 正如 cmets 中提到的 ASP.NET 和其他基于 web 的解决方案也可以做到这些,因此不仅普通的套接字而且 websockets 也很有趣(web sockets vs. wcf 应该与 sockets vs. wcf 没有太大区别)。
【问题讨论】:
-
你所说的sockets是指websockets吗?
-
SSL 不编码 数据,SSL 加密 数据。那里有很大的不同。套接字(如果您指的是 Socket 类)是 .NET 上最低的网络类型,所以是的,它始终是编程速度最快但速度最慢的。 WCF 几乎不再使用,基本上只用于网络内应用程序。对于 HTTP/HTTPS,请查看 ASP.NET Web API 或 ASP.NET Core。也就是说,500 个客户是一个相当低的数字。
-
@CamiloTerevinto tnx 我知道除了编码之外还有另一个词,但谷歌只提出了编码。将尽快在文本中更正。到目前为止,我们使用 asp.net 并且只有问题(IIS 挂起,....),这就是为什么我们现在正在讨论以不同的方式做它(并且套接字和 wcf 出现了)
-
@evk 不,我指的是套接字
-
使用原始套接字,您将花费大量精力而毫无用处。 500 个客户端并不多,任何东西都可以处理这样的数量,无需寻求最终的性能优化。鉴于您的描述 - 我只会使用 asp.net(不是 WCF 的粉丝)。