如何从服务器向WCF中的所有客户端发送通知消息(您可以说是广播)?

Ahm*_*aid 5 wcf notifications broadcast wcf-callbacks

我想每秒从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);
    }
  }
  );
}
Run Code Online (Sandbox Code Playgroud)

我担心调用回调方法,因为客户端可能会关闭他的应用程序,但我使用try catch处理它,减少超时,并且并行发送广播,那就足够了吗?

blo*_*art 5

您需要设置回调服务; 我写了一个简单的新手引导而回

  • 如果没有在帖子本身中提供足够的细节,答案不应链接到外部资源。该链接已失效,现在答案无用。 (2认同)