SignalRの自動再接続
環境
- Windows 10 pro 1906
- Visual Studio 2019 16.4 preview1
- dotnet core 3.0.100
前回はサーバーとSignalRで通信を行うクライアントをWPFで作成しました.
リアルタイム通信ですが途中で接続が切れてしまった場合に自動的に再接続することで,利便性が高まります.
SignalRは自動再接続の仕組みがあり,とても簡単な記述でこの機能を実現することができます.
基本的にはHubConnectionBuilderでWithAutomaticReconnect
を入れるだけです.
connection = new HubConnectionBuilder() .WithUrl(@"https://localhost:44350/chathub")//サーバー側でMapHubで指定したURLを指定する. .WithAutomaticReconnect() .Build();
これだけで自動再接続を行ってくれるようになります.
わかりやすいように接続状態の変化ごとにメッセージが表示されるようになっています.
サーバーとクライアントを起動させて,クライアントからサーバーに接続してから,サーバーを落とします.
すると再接続を試み,Reconnecting
と表示されます.でも,サーバーが起動していないので接続はできません.
次にサーバーを起動すると,Reconnected
と表示され,メッセージを送れることが確認できます.