最初,我遇到启用选项keep-alive的问题(它会阻止下一个客户端调用。只有第一个接收回答的调用)。
现在,我需要使用gSoap实现一些异步Web服务。
所以我是否有义务启用keep-alive以实现异步Web服务?
非常感谢你!
答案 0 :(得分:0)
为了给出一些背景知识,建立TCP连接会产生很大的设置开销。 keep-alive的目的是通过重用已经打开的TCP连接而不是从头开始构建新连接,允许在后续连接上避免这种开销来减少延迟。
你可以在不使用keep alive的情况下获得Web服务的功能(毕竟,在HTTP / 1.1中引入了keep alive,并且HTTP / 1.0已经工作了很长时间而没有保持活着)。但是,与正确支持保持活力相比,您肯定会遇到更糟糕的性能。还应该注意的是,当涉及在移动设备上建立连接时,拆除以前的连接并完全从头开始创建新连接而不是保持连接打开并重新使用它也可能对电池产生影响。特别是,关闭和打开连接可能会导致无线电进入休眠状态,然后再次唤醒,无线电通常在从睡眠状态转换为唤醒状态时比在稳定状态下消耗更多功率。
答案 1 :(得分:0)
您的服务应该是多线程的,以支持多个客户端,这里gsoap文档解释它http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.11