在 XML-RPC 或 SOAP 中实现回调

2024-03-07

我试图了解如何使用 SOAP 或 XML-RPC 为我的产品创建远程、开放的 API。 问题是,我的 API 的一部分将要求我能够将事件从服务器推送到客户端 - 我将需要能够“发送回调”,而不仅仅是“调用函数”作为我的 API 的一部分。 在 SOAP 或 XML-RPC 中有没有好的方法可以做到这一点?


在 RPC 系统中执行通知有两种方法:推送模型和拉取模型。在拉模型中,客户端会定期向服务器查询是否有可用的通知。服务器需要存储它们,直到客户端获取它们(或直到它们过期)。作为一种变体,客户端可能有一个阻塞 RPC 调用,该调用会阻塞直到下一个事件可用,然后立即返回。这对于 CORBA 来说工作得很好,但对于 SOAP 或 XML-RPC 来说就不太好用了,因为 HTTP 实现通常不准备让连接保持打开状态几个小时。

在推送模型中,生产者将对消费者调用 RPC,使消费者成为服务器。这对于 SOAP 或 XML-RPC 也不太适用,因为客户端通常不准备承担服务器角色,并且防火墙可能会阻止回调通过。所以周期性拉动是最现实的方法。

附:你可能已经注意到我没有遵循你的术语:你不能推动events。事件是发生的事情。您只能推送通知,这是事件确实发生的信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 XML-RPC 或 SOAP 中实现回调 的相关文章

随机推荐