net tcp WCF サービスからすべてのクライアントに毎秒通知メッセージを送信したいのですが、ブロードキャストできますか?
役立つ回答の後
接続されているすべてのユーザーに通知(ハートビート)を送信する次のメソッドを作成しました
foreach (IHeartBeatCallback callback in subscribers)
{
ThreadPool.QueueUserWorkItem(delegate(object state)
{
ICommunicationObject communicationCallback = (ICommunicationObject)callback;
if (communicationCallback.State == CommunicationState.Opened)
{
try
{
callback.OnSendHeartBeat(_heartbeatInfo.message, _heartbeatInfo.marketstart,_heartbeatInfo.marketend, _heartbeatInfo.isrunning, DateTime.Now);
}
catch (CommunicationObjectAbortedException)
{
Logger.Log(LogType.Info, "BroadCast", "User aborted");
communicationCallback.Abort();
}
catch (TimeoutException)
{
Logger.Log(LogType.Info, "BroadCast", "User timeout");
communicationCallback.Abort();
}
catch (Exception ex)
{
Logger.Log(LogType.Error, "BroadCast", "Exception " + ex.Message + "\n" + ex.StackTrace);
communicationCallback.Abort();
}
}
else
{
DeletionList.Add(callback);
}
}
);
}
クライアントがアプリケーションを閉じる可能性があるため、コールバック メソッドを呼び出すことが心配ですが、try catch を使用して処理し、タイムアウトを減らし、ブロードキャストを並行して送信したので、それで十分ですか?