Apache CordovaアプリからAzureモバイルサービスでホストされているSignalRにアクセスしようとしていますが、ハブ接続を開始するときにエラー403が発生します。 Webソケットプロトコルによる要求のネゴシエーション。 私は以下のようにEnableJsonPを追加しようとしましたが、それでも同じ問題が発生します。空白のホストされたモバイルサービスを有効にするための他の方法はありますか?AzureモバイルサービスでJsonPを有効にする方法SignalRを使用した.Netバックエンド
public static class WebApiConfig
{
public static void Register()
{
SignalRExtensionConfig.Initialize();
// Use this class to set configuration options for your mobile service
ConfigOptions options = new ConfigOptions();
options.SetRealtimeAuthorization(AuthorizationLevel.Anonymous);
//// Use this class to set WebAPI configuration options
var configBuilder = new ConfigBuilder(options, (httpconfig, ioc) =>
{
ioc.RegisterInstance(new CORSSignalROwinAppBuilderExtension(httpconfig)).As<IOwinAppBuilderExtension>();
});
HttpConfiguration config = ServiceConfig.Initialize(configBuilder);
config.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Include;
Database.SetInitializer(new snackappmobileInitializer());
}
}
internal class CORSSignalROwinAppBuilderExtension : OwinAppBuilderExtension
{
private HttpConfiguration httpconfig;
protected override void ConfigureSignalR(IAppBuilder appBuilder)
{
appBuilder.Map("/signalr", map =>
{
var hubConfiguration = new HubConfiguration
{
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
base.ConfigureSignalR(appBuilder);
}
public CORSSignalROwinAppBuilderExtension(HttpConfiguration httpconfig) : base(httpconfig)
{
this.httpconfig = httpconfig;
}
}
appサービスのモバイルアプリでは、通常の方法で動作しますが、頻繁に(4回に3回)エラーコード "Connectionid is incorrect format"がコードワから接続しようとしていますアプリケーションでは、ドキュメントごとに、私は接続IDがネゴシエートして渡され、リクエストが開始されたことを確認しました(エラーが発生した場合).Mineは認証なしの簡単なサンプルです。サーバー側私はちょうどcordovaアプリに必要な起動時にcorsを有効にしました。なぜ私はこれを得る任意のアイデア? – KNara
私の頭の上ではないが、私はSignalRの専門家ではない。専門家があなたのコードを見ることができるように、signalrでタグ付けされた追加の質問を投稿することをお勧めします。 –