1

イベントのロングポーリングエンドポイントをサブスクライブしようとしています。そこで、最初に/ eventsへのオプション呼び出しを行い、リアルタイムサーバーのURLを取得しました。ただし、URLが次のようになっていることに気づかずにはいられません: http: //2.realtime.services.box.net/subscribe ?channel = XXX&stream_type = all

上記のURLは、直接先に進んで、ハンドシェイクの手順をスキップしてトピックをサブスクライブする必要があることを示唆しているようです。実際、 http: //2.realtime.services.box.net/でハンドシェイクしようとすると、400のステータスコードが返されます。

直接サブスクライブしようと考えましたが、チャネルが予想どおりパスパラメータではなくクエリパラメータにあることにも気付きました。

これを明確にしていただけますか?これが本当に彗星の長いポーリング基準に従っているのか、それとも他の何かであり、私はこれを別の方法でやろうとしているのでしょうか?代わりにWebSocketを試す必要がありますか?

ありがとう!

4

1 に答える 1

0

OPTIONS呼び出しへの応答にあるURLに対してHTTPGET呼び出しを行うことができるはずです。イベントが利用可能になると、新しい変更で応答します。

魔法の「サブスクライブ」または「websockets」リクエストは必要ありません。標準のHTTPGETを使用するだけです。

電話をかけるたびにHTTP接続が開き、アカウントで何かが発生すると、{"message":"new_change"}JSONペイロードがパイプを流れます。何も起こらない場合は、接続がタイムアウトして閉じるか、400エラーが発生します。

{"message": "new_change"}が表示されるとすぐに、受信した最新のイベントからstream_positionを使用して/eventsAPIにアクセスするときが来たことを示します。

イベントには多くの種類があり、「event_type」によって異なる方法で解析できます。ほとんどのイベントタイプには、イベントが適用されるアイテムの既存のコピーにデルタまたは差分として適用するのに十分な情報が含まれています。すべてのイベントには、time-stream-continuumのどこにあるかを示すstream_positionがあります。

JSONの「ソース」セクションを探して、オブジェクトを確認します。これらのオブジェクト構造は、APIの他のすべてのAPI呼び出しで使用されるものと同じ構造に従います。したがって、「type」:「folder」が表示されると、GET / folder /IDAPI呼び出しで取得する他のフォルダーと同じ構造になります。

于 2013-03-08T19:02:29.860 に答える