Jak mogę wysłać powiadomienie z serwera do wszystkich klientów w WCF (transmisja, którą możesz powiedzieć)?
Chcę wysłać powiadomienie co sekundę z usługi net tcp WCF do wszystkich klientów, Broadcast można powiedzieć?
Po pomocnych odpowiedziach
Napisałem następującą metodę, która wyśle powiadomienia (puls) do wszystkich połączonych użytkowników
<code>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); } } ); } </code>
Martwię się o wywołanie metody wywołania zwrotnego, ponieważ klient może zamknąć swoją aplikację, ale obsłużyłem ją za pomocą funkcji try catch, zmniejszając limit czasu i wysyłając rzutowanie równoległe, więc czy to wystarczy?