예제 #1
0
        private void InitPongService()
        {
            _pongService = new PongService();
            _pongHost    = new ServiceHost(_pongService);
            _pongHost.Open();
            _pingClientFactory = new ClientFactory <IPing>("*");
            _pingClient        = _pingClientFactory.GetClient();

            _pongs = Observable.FromEventPattern <Service.Events.PongEventArgs>(handler => _pongService.PongRequest += handler,
                                                                                handler => _pongService.PongRequest -= handler)
                     .Select(_ => new PongEventArgs())
                     .ObserveOn(Scheduler.Default);
            _pongs.Subscribe(OnPong);
        }
예제 #2
0
 private static void consumer_MessageReceived(object sender, Message message)
 {
     try
     {
         object obj = Serializer.Deserialize(message.Content);
         if (obj.GetType().Equals(typeof(PingMessage)))
         {
             PingMessage pingMessage = (PingMessage)obj;
             Console.WriteLine(string.Format("Ping recibido: {0}", pingMessage.PingId.Id));
             PongMessage pongMessage = PongService.ProcessPing(pingMessage);
             Console.WriteLine(string.Format("Enviando Pong: {0}...", pongMessage.PingId.Id));
             producer.SendMessage(new Message(Serializer.Serialize(pongMessage)));
             Console.WriteLine(string.Format("Pong enviado: {0}", pongMessage.PingId.Id));
             PongService.ProcessPong(pongMessage);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
예제 #3
0
 private static Statistic GetStatistic(object sender, Message message)
 {
     return(PongService.GetStatistic());
 }
 Statistic IPongController.Get()
 {
     return(PongService.GetStatistic());
 }