我有一个Web应用程序和一个需要相互通信的Web服务。此通信必须是双向通信,因为Web应用程序可以将接口处发生的事件发送到Web服务。并且Web服务可以将第三方收到的事件发送到Web应用程序部分。那么,我应该遵循什么样的设计呢?如何使这种沟通成为双向沟通?
此致 Anshul
答案 0 :(得分:0)
你可以通过使用Comet模型(有时称为反向AJAX)来实现。 它通过长轮询或打开与Web服务的持久连接来实现。
在长轮询模式下,客户端打开与Web服务的连接并等待服务器的响应。当存在从服务器到客户端的事件时,服务器只使用该预先存在的连接进行响应并关闭连接,然后客户端读取响应,并立即打开新连接以侦听更多事件。
在流模式下,连接是持久的,而不是在每个服务器事件后关闭。具有隐藏iframe的HTTP / 1.1分块响应可用于实现此目的。
无论客户端实现如何,请注意使用Comet可能会导致服务器端过多的打开连接。在决定Web服务器堆栈/ Web框架时,您应该考虑到这一点 - 理想情况下,它应该使用非阻塞I / O和continuation来断开服务器线程的长连接。