Beispiel #1
0
 private void ProcessMessage(IServer server, ISession session, object message)
 {
     if (message is Ping)
     {
         server.Send(new Pong(), session);
     }
     else if (message is BroadSubscriber)
     {
         BroadSubscriber bs = (BroadSubscriber)message;
         RegisterRemoteSubscribers(bs.NodeID, bs.Name);
         Loger.Process(LogType.DEBUG, "registered remote subscriber [{0}]", bs.Name);
     }
     else if (message is GetSubscribers)
     {
         GetSubscribersResponse response = new GetSubscribersResponse();
         response.NodeID      = ID;
         response.Subscribers = mLocalSubscriberCenter.GetAll();
         server.Send(response, session);
     }
     else if (message is BroadRemoveSubscriber)
     {
         BroadRemoveSubscriber remove = (BroadRemoveSubscriber)message;
         UnRegisterRemoteSubscribers(remove.Name);
     }
     else if (message is Message)
     {
         ((Message)message).Track("node receive message");
         Publish((Message)message);
         ((Message)message).EndTrack("node receive message completed!", this);
     }
     else
     {
     }
 }
Beispiel #2
0
 private void OnRemoteNodeReceive(INodeConnection connecter, object message)
 {
     if (message is GetSubscribersResponse)
     {
         GetSubscribersResponse response = (GetSubscribersResponse)message;
         RegisterRemoteSubscribers(response.NodeID, response.Subscribers);
         Loger.Process(LogType.INFO, "sync remote subscribers from [{0}]", response.NodeID);
     }
     else if (message is Message)
     {
         Publish((Message)message);
     }
 }
Beispiel #3
0
        public GetSubscribersResponse GetSubscriber(GetSubscribersRequest request)
        {
            var response = new GetSubscribersResponse()
            {
                Request       = request,
                ResponseToken = Guid.NewGuid()
            };

            try
            {
                response.Subscribers = _repository.FindAll().MapToViews();
                response.Success     = true;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Success = false;
            }

            return(response);
        }