How can I send a notification message from server to all clients in WCF (broadcast you can say)?
broadcast, notifications, wcf, wcf-callbacks
Solution
You'll need to setup a callback service; I wrote a simple beginners guide a while back
Problem
I want to send notification message every second from net tcp WCF service to all clients, Broadcast you can say? After the helpful answers I wrote the following method that will send notifications (heartbeat) to all connected users ``` 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); } } ); } ``` I am worried about calling the callback method as the client may close his application, but I handled it using the try catch, decrease the timeout, and send the broad cast in parallel, so is that sufficient?