2013-03-01 123 views
1

我一直在嘗試訂閱事件長輪詢端點。所以首先我做了一個對/ events的選項調用,並取回了實時服務器的url。然而,我不禁注意到這個url看起來像這樣:http://2.realtime.services.box.net/subscribe?channel=XXX&stream_type=all長輪詢事件

上面的網址似乎表明我應該直接繼續嘗試訂閱跳過握手步驟的主題。其實,如果我試圖在http://2.realtime.services.box.net/握手,我會得到一個400狀態碼。

我想直接嘗試訂閱,但我也注意到,頻道是在查詢參數而不是我期望的路徑參數。

你能澄清一下嗎?如果這真的遵循彗星長輪詢標準或者是其他事情,我試圖以不同的方式做到這一點?我應該嘗試WebSockets嗎?

謝謝!

+0

剛剛嘗試過使用websockets並獲得了400個狀態代碼握手也是如此。 – 2013-03-01 21:46:08

回答

0

您應該能夠對OPTIONS調用響應中的URL進行HTTP GET調用。一旦有事件發生,它將作出新的更改。

應該不需要任何神奇的「訂閱」或「websockets」請求。只需使用標準的HTTP GET即可。

每次打電話給您時都會打開一個HTTP連接,如果您的帳戶發生任何事情,您將看到{「message」:「new_change」} JSON負載流入管道。如果什麼都沒有發生,你的連接就會超時並關閉,否則你會得到一個400錯誤。

只要您看到{「message」:「new_change」},那就是您的信號,即您應該從收到的最近事件中按照stream_position打開/ events API。

有很多類型的事件,您可以通過它們的「event_type」進行不同的解析。大多數事件類型都有足夠的信息將它們作爲delta或diff應用於事件所適用的項目的現有副本。每個事件都會有一個stream_position,它將指示它在時間流連續區中的位置。

查找JSON的「源」部分以查看該對象。這些對象結構遵循API中所有其他API調用所使用的所有相同結構。所以,當你看到一個「類型」:「文件夾」時,它將具有與你在GET/folders/ID API調用中獲得的任何其他文件夾相同的結構