2010-09-14 78 views
5

我想知道是否可以有一个REST风格的Web服务和与客户端和服务器的双向通信。REST风格:双向通信

在我的情况下,服务器上的状态可以改变,所以服务器应该向客户端发送消息来更新自己。也许这完全违背了RESTful的想法。

我可以AJAX帮我解决这个问题吗?

谢谢!

+0

从我所了解的REST,是的,状态是反对REST – 2010-09-14 07:16:15

回答

4

在标准http范例下不可能实现,但请查看Comet了解该问题的可能解决方法,并且总是存在轮询。

+0

感谢链接到Comet – myborobudur 2010-09-14 11:15:45

0

您所追求的功能被web sockets的概念所对待,但它们并不是主流。

为了保持您的解决方案RESTful,您可以让客户端调查您的服务。您可以优化许多方法,比如实现一种让客户端查询给定时间戳的更改的特殊方法,然后客户端只会跟踪上次检查的时间。

+0

是否有浏览器支持网络套接字已经?我看到JBoss Netty支持这种连接。 – myborobudur 2010-09-14 11:53:38

0

你应该看看BOSH。 BOSH与Comet类似,但更具体一点,我认为还有更可靠的实现。

虽然如果您想使用标准的REST服务,您将同时为多个用户提供服务。你应该考虑使用非阻塞IO的其他实现。
也许有更多关于的问题。当然,现在也有,但如果您需要为旧浏览器提供服务,则不能依赖它们。