他の技術のWebSocket /サーバー送信イベント(SSE)/ロングポーリング等:従来のプッシュ技術。
SignaIR長い歴史があり、最も一般的な.NETプラットフォームのプッシュ技術であり、そして今、この技術は、Azureの中国の東部地域へのPaaSフォームラインにあり、そしてサポートC#/ Javaの/ JavaScriptを/ Pythonと他の言語。
AzureのSignalRサービスは、様々な業界で使用されている、アプリケーションのいずれかのタイプに適したリアルタイムコンテンツの更新が必要です。 以下は、AzureのSignalRのサービスを使用するためのいくつかの例です:
-
高周波データ更新:ゲーム、投票、投票、オークション。
-
ダッシュボードと監視:コーポレート・ダッシュボード、金融市場データ、リアルタイムの販売の更新、リーダーボードとマルチプレイヤーゲームのIoT監視。
-
チャット:リアルタイムのチャットルーム、チャットロボット、オンライン顧客サポート、リアルタイムの店員、メッセンジャー、ゲーム内のチャットなどを。
-
リアルタイム所在地地図:物流追跡、配達状況の追跡、出荷ステータスの更新、GPSアプリケーション。
-
リアルタイムターゲット広告:パーソナライズされた広告やリアルタイムのプッシュパッケージ、インタラクティブ広告。
-
コラボレーティブアプリケーション:共同作業、チームの会議やホワイトボードアプリケーションソフトウェア。
-
ソーシャルネットワーク、電子メール、ゲーム、旅行通知:通知を押してください。
-
リアルタイム放送:リアルタイムのオーディオ/ビデオ放送、リアルタイム字幕、翻訳、イベント/ニュース放送。
-
IoTと接続されたデバイス:のIoTリアルタイム指標、リモートコントロール、リアルタイムのステータスおよび位置追跡。
-
オートメーション:上流に基づいてリアルタイムのトリガイベント。
ケース:使用Azrue機能とAzureのSignaIRは、ブロードキャストチャットルームを開発します
サンプルコードの後端の機能:
https://github.com/Azure-Samples/signalr-service-quickstart-serverless-chat
サンプルコードのフロントエンド:
https://azure-samples.github.io/signalr-service-quickstart-serverless-chat/demo/chat-v2/
ブロードキャスト:
[FunctionNameは(" のSendMessage " )] パブリック 静的タスクのSendMessage( [HttpTrigger(AuthorizationLevel.Anonymous、" ポスト")] オブジェクトメッセージ、 [SignalR(HubName = " チャット")] IAsyncCollector <SignalRMessage> signalRMessages) { 返す(signalRMessages.AddAsyncを 新しいSignalRMessage { ターゲット = " newMessage " 、 引数 = 新しい[] {メッセージ} }); }
ユニキャスト:
[FunctionNameは(" のSendMessage " )] パブリック 静的タスクのSendMessage( [HttpTrigger(AuthorizationLevel.Anonymous、" ポスト")] オブジェクトメッセージ、 [SignalR(HubName = " チャット")] IAsyncCollector <SignalRMessage> signalRMessages) { 返す(signalRMessages.AddAsyncを 新しいSignalRMessage { // メッセージは、このユーザーIDに送信されます ユーザーID = 「USERID1 」、 ターゲット= " newMessage " 、 引数 = 新しい[] {メッセージ} })。 }
マルチキャスト:
[FunctionNameは(" のSendMessage " )] パブリック 静的タスクのSendMessage( [HttpTrigger(AuthorizationLevel.Anonymous、" ポスト")] オブジェクトメッセージ、 [SignalR(HubName = " チャット")] IAsyncCollector <SignalRMessage> signalRMessages) { 返す(signalRMessages.AddAsyncを 新しいSignalRMessage { // メッセージがこの名前のグループに送信されます GroupNameの= 「myGroupが」、 ターゲット= " newMessage " 、 引数 = 新しい[] {メッセージ} })。 }
AzureのSignalRサービスですを使用することの利点は何ですか?
規格は、一貫性のあるメッセージのプッシュを提供します。
SignalRは、Webアプリケーションであるリアルタイムに生成するための様々な技術のための抽象化を提供します。 WebSocketのは最高の輸送であるが、他のオプションが利用できない場合、他の技術のサーバがイベント(SSE)とロングポーリングなどを送ってください。 サーバーとクライアントの機能でサポートされている、SignalRを自動的に検出し、適切な伝送を初期化します。
ネイティブASP.NETコアサポート:
SignalRサービスは、ASP.NETのコアとASP.NETを使用してローカルプログラミング経験を提供します。 使用SignalR SignalRサービスは、新しいアプリケーションを開発したり、SignalRサービス給与へのエネルギーの量が少ないSignalRベースのアプリケーションを既存から移行します。 サーバーBlazor:SignalRサービスもASP.NETコアの新機能をサポートしています。
クライアントのサポートの広い範囲:
SignalRサービスは、Webやモバイルブラウザ、デスクトップアプリケーション、モバイルアプリケーション、サーバープロセス、のIoT機器やゲーム機などのクライアントの広い範囲で利用可能です。 SignalRサービスは、異なる言語でSDKを提供しました。 ネイティブASP.NET CoreまたはASP.NET C#SDKに加えて、SignalRサービスもサポートJavaScriptクライアントSDK Webクライアントと多くのJavaScriptフレームワークを提供します。
JavaクライアントSDKはまた、Androidのネイティブアプリケーションを含むJavaアプリケーションをサポートしています。 SignalRサービスサポートのREST API、サーバーなしAzureの機能やイベントグリッドとの統合後。
大規模なクライアント接続を処理します:
大規模なリアルタイムアプリケーションの設計のためのSignalRサービス。 SignalRサービスは、複数のインスタンスがクライアント接続数百万に及ぶ、一緒に働くことができます。 サービスは、断片化、高可用性や災害復旧の目的を達成するために、複数のグローバル領域をサポートしています。
それは、自己支持SignalRの負担を排除します。
そして、自立型のアプリケーションSignalRは、サービスを切り替えた後、クライアント接続を処理する大きさと後端面を管理する必要がSignalRを比較しません。 完全に管理されたサービスは、Webアプリケーションをホスティングし、コスト節約簡素化します。 SignalRサービスは、世界中で、ファーストクラスのデータセンターやネットワークを提供し、SLA保証と、接続の百万に拡大する、とAzureのすべての遵守と安全性の基準を満たすことができます。
それは別のメッセージングモードのための豊富なAPIを提供します。
SignalRサービスは、サーバが特定の接続は、すべての接続または特定のユーザーに属しているか、いずれかのグループに配置された接続のサブセットにメッセージを送信することができます。
参考費: