イベントストリームへのLong polling更新に使用できるリアルタイムサーバーのリストを返します。
Long pollingとは、サーバーがレスポンスを送信するまでHTTPリクエストを開いたままにしておき、そのプロセスを何度も繰り返して更新されたレスポンスを受信するというコンセプトです。
イベントストリームのLong pollingは、User Eventについてのみ使用でき、Enterprise Eventについては使用できません。
Long pollingを使用するには、最初にこのエンドポイントを使用してLong polling URLのリストを取得します。次に、取得した任意のURLに対してLong pollingリクエストを発行します。
監視対象のアカウントでイベントが発生すると、new_change
という値を持つレスポンスが送信されます。このレスポンスは、最新の既知のstream_position
を使用してeventsエンドポイン トにリクエストを送信するなど、さらなるアクションを促すことだけを目的としているため、その他の詳細を含んでいません。
サーバーは、このレスポンスを送信すると接続を閉じます。この時点でイベントのリスト化を再開するには、Long pollingプロセスを繰り返す必要があります。
しばらくイベントが発生せずに接続がタイムアウトになると、reconnect
という値を持つレスポンスが届きます。このレスポンスを受け取ったら、このエンドポイントを改めて呼び出してプロセスを再開します。
retry_timeout
の秒数以内にイベントを受信しなかった場合は、リアルタイムサーバー (このエンドポイントのレスポンスに含まれるURLの1つ) に別のリクエストを送信する必要があります。ネットワークエラーが原因で、これを実行しなければならない場合もあります。
また、リアルタイムサーバーへのリクエスト時にmax_retries
エラーを受信した場合は、まずこのエンドポイントを呼び出してからやり直す必要があります。
Long pollingイベントの通常のエンドポイントの代わりに使用できるページ割りされたサーバーの配列を返します。
予期しないクライアントエラー。
curl -i -X OPTIONS "https://api.box.com/2.0/events" \
-H "authorization: Bearer <ACCESS_TOKEN>"
await client.events.getEventsWithLongPolling();
client.events.get_events_with_long_polling()
await client.Events.GetEventsWithLongPollingAsync();
events = client.events().generate_events_with_long_polling()
for event in events:
print(f'Got {event.event_type} event')
client.events.getEventStream(function(err, stream) {
if (err) {
// handle error
}
stream.on('data', function(event) {
// handle the event
});
});
{
"chunk_size": 1,
"entries": [
{
"max_retries": "10",
"retry_timeout": 610,
"ttl": "10",
"type": "realtime_server",
"url": "http://2.realtime.services.box.net/subscribe?channel=cc807c9c4869ffb1c81a&stream_type=all"
}
]
}