Firebase 経由の REST ストリーミングをサポートする Nest API を使用しています。REST が動作していますが、正しくストリーミングできません。これは私のアプリにとって非常に重要であり、REST は私がやりたいことに対して効果的ではありません。
リクエストに Hammock を使用しています。コードは次のとおりです。
public class NestAPI
{
private RestClient client { get; set; }
public NestAPI()
{
this.client = new RestClient();
this.client.Authority = "https://developer-api.nest.com/";
this.client.HasElevatedPermissions = true;
}
public void BeginStreaming()
{
RestRequest request = new RestRequest();
request.AddParameter("auth", App.accessToken);
request.RetryPolicy = new RetryPolicy() { RetryCount = 3 };
//Enables streaming
//request.AddHeader("Accept", "text/event-stream");
//request.StreamOptions = new StreamOptions() { Duration = new TimeSpan(96, 0, 0), ResultsPerCallback = 1 };
this.client.BeginRequest<object>(request, new RestCallback<object>(this.StreamCompletedEvent));
}
private void StreamCompletedEvent(RestRequest request, RestResponse<object> response, object userState)
{
//TO DO: check for errors first
string json = response.Content;
}
public void EndStreaming()
{
this.client.CancelStreaming();
}
}
このコードは機能し、JSON を返しますが、ストリーミングを有効にできないようです。「ストリーミングを有効にする」の下の行のコメントを外すと、コールバック イベントが発生しません。認証は uri パラメータ「auth」を使用して行われることに注意してください。
残念ながら、利用可能な Firebase ライブラリはないようで、REST が唯一の選択肢です。JSON プロパティがいつ変更されるかを知りたいのですが、ストリーミング中に別の値を設定したいと考えています。