2016-09-02 52 views
1

Microsoft tutorial codeを使用して簡単なSignalR Chat Webアプリケーションをセットアップします。セットアップが遅いSignalR接続の場合

ローカルでデバッグする場合は正常に動作していますが、ユーザ名を入力するとすぐにメッセージを送信できます。しかし、ユーザー名を入力してAzureにデプロイすると、新しいメッセージ(送信ボタンをクリックしても応答がない)を送信する前に5秒間待たなければならないが、この最初のメッセージの後に、

私にとっては、最初の接続($.connection.hub.start())を設定すると遅いようです。

これは正常ですか?この単純なアプリケーションのパフォーマンスをどのように改善できますか?

+0

起動が遅いか、サーバーにリクエストを送信するときに時間がかかりますか?あなたのハブコードはどうですか? –

+2

AzureでWebソケットを有効にしていないようです。 SignalRはwebsocketsトランスポートを使用して接続を開始しようとしています。これが失敗すると、fallbackとしてserverSentEventsを使用しようとします(動作しない場合、longPollingが試行されます)。これは、デバッガツールを開き、SignalRの要求を確認することで確認できます。 – Pawel

+0

@Pawel、あなたは絶対に正しいです!それはlongPollingを使用していました。 Azure上でWebSocketを有効にし、HTTPSを使用してアクセスすることで問題を解決しました。ありがとうございました! – Bolu

答えて

3

デフォルトでは、WebSocketはAzureでは有効になっていません。デフォルトでは、クライアントはwebSocketから異なる転送を試行します。 WebSocketが機能しない場合は、serverSentEventsに戻り、最後にlongPollingに戻ります。これには時間がかかります。 Azure上でWebSocketを有効にするか、serverSentEventsとlongPollingのトランスポートのみを使用するように指定してください。

+0

[SignalR Azure Cloud Service with Service Bus](http://stackoverflow.com/questions/39345867/signalr-azure-cloud-service-with-service-bus)を参照してください。 – Bolu

関連する問題