2010-09-14 147 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的其他實現。
也許有更多關於的問題。當然,現在也有,但如果您需要爲舊瀏覽器提供服務,則不能依賴它們。