【问题标题】:What does it mean when a web service is asynchronous?当 Web 服务是异步的时,这意味着什么?
【发布时间】:2016-05-04 15:32:26
【问题描述】:

Web 服务是异步的是什么意思?仅当您使用 Ajax 调用它并且您的页面上有一个部分在 Web 服务完成时刷新时才使用它?谢谢。

【问题讨论】:

    标签: web-services asynchronous


    【解决方案1】:

    我知道这是一个老话题,但是 Web 服务是同步还是异步取决于 Web 服务的设计,与 Ajax 无关。异步 Web 服务事务处理如下:

    1. 客户端调用 Web 服务。在调用中,客户端发送一个回调端点,由客户端实现为服务。
    2. Web 服务返回“收到消息”回复。 ... (发生其他一些处理) ...
    3. Web 服务完成其任务,然后调用客户端提供的回调端点。
    4. 客户端回调回复收到的消息。

    Developing Asynchronous Web ServicesHow to: Create Asynchronous Web Service Methods

    【讨论】:

    • 是的,有重点2.(请求收到确认)和3.CALLBACK端点,需要WSDL指定。 ...这确实需要在 WS fwk 端进行不同的处理...所以这个@Donals 响应只是正确的一个
    • “如何”链接是指传统的 ASMX Web 服务技术。该技术已被 WCF 取代。
    【解决方案2】:

    问题是网络服务是异步的,还是您对它的访问。在网页的上下文中,服务更有可能是同步的,但它被异步访问。

    很可能,服务是通过 AJAX 调用的。调用服务,然后页面继续。当响应到来时,成功或失败函数都会异步执行。

    【讨论】:

    • 好的。这绝对是一个很好的答案。在发送ajax调用的网页上下文中,服务器同步运行代码,服务器端的连接被阻塞,或者你可以说从浏览器端打开ajax连接的线程也被阻塞,但主要执行创建 ajax 调用后线程不是并继续。
    【解决方案3】:

    同步意味着您调用 Web 服务(或函数或其他)并等待它返回 - 所有其他代码执行和用户交互都会停止,直到调用返回。异步意味着您在等待 Web 服务调用返回时不会停止所有其他操作。执行其他代码和/或用户可以继续与页面(或程序 UI)交互。

    所以,我不会说 Web 服务本身是异步的,我会说您对服务的 ajax 调用是异步的。

    【讨论】:

    • 老实说,说 web 服务本身不是异步的并不是一个正确的说法
    • web服务也可以是异步的
    【解决方案4】:

    当您调用同步 Web 服务时,服务会处理请求并返回 HTTP 状态代码 200 OK (1) 如果一切都按预期进行,或者错误 4xx。处理请求时调用被阻塞,可能需要很长时间。

    当 Web 服务是异步的时,主要区别在于调用应该立即返回 HTTP 202 ACCEPTED (2),这意味着请求已在队列中但尚未处理。

    (1) 200 OK http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1
    (2) 202 接受http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3

    【讨论】:

      【解决方案5】:

      异步 ​​Web 服务允许客户端提交请求、处理请求并在给定时间后响应客户端——客户端不会在接收响应时阻止所有活动。

      相比之下,同步的 Web 服务将直接向客户端提供响应,期望客户端阻止所有活动,直到返回响应。在这种情况下,Web 服务将限制客户端一次处理一个请求。

      【讨论】:

      • -1:对不起,但是服务是否同步与客户端无关。
      • 详细说明“无”是一种强有力的陈述。也许您还有更多要添加的内容……您给出了“什么”而不是“为什么”。没有客户端的服务器不是很有用;通过查看 Web 服务如何使用和无法使用来了解 Web 服务的工作原理,从而了解 Web 服务本身的工作原理。
      猜你喜欢
      • 2013-04-11
      • 2014-07-08
      • 2016-09-07
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2021-03-31
      • 1970-01-01
      相关资源
      最近更新 更多