WCF支持几种不同的通信协议。我的WCF服务仅部署在同一台机器上。我只想知道TCP是否比HTTP更有效,还是应该使用HTTP?
答案 0 :(得分:9)
如果您的WCF服务位于同一台计算机上,请使用命名管道。我发现这个flow chart很有帮助。
答案 1 :(得分:4)
如果您的服务只能在同一台计算机上运行,请尝试使用NetNamedPipeBinding。
当然,无论如何,您应该使用真实的测试数据来衡量您获得的性能。
答案 2 :(得分:4)
HTTP的优势 - 应用层(OSI model中的7) - 是
HTTP(通常)基于TCP(传输)/ IP(网络)。因此,上述所有优点都会带来性能损失。您可以使用更多灵活协议(在用户/应用程序级别)定义自己的应用程序,但通常需要更多编程,例如处理已包含在HTTP中的问题。此外,正如名称 protocol 所暗示的那样,如果您定义一个协议,没有人会理解您自己的协议,这与http不同。您不仅需要设计,编程和构建服务器端,还需要设计和构建客户端。客户必须安装您的程序并使用它。
答案 3 :(得分:2)
HTTP建立在TCP之上,因此TCP肯定会更快。 HTTP也必须解析文本标题,这是另一堆花费的时间。如果您的用例允许,请使用TCP。
答案 4 :(得分:1)
HTTP是一种基于TCP的协议,因此最好不要在顶部添加额外的协议。另请参阅OSI Model。
答案 5 :(得分:1)
您可以在此处清楚地看到HTTP位于TCP之上: http://en.wikipedia.org/wiki/OSI_model 要么 在这里更好: http://en.wikipedia.org/wiki/TCP/IP_model
答案 6 :(得分:1)
如前所述,TCP是传输控制协议,HTTP是顶级协议。您可以创建自己的自定义协议,因为它不会有一些http行李,因此可以更高效。我必须这样做才能从远程计算机上录制的视频流中获取帧编号。