public void Unsubscribe() { using (var pub = new MessagePublisher(9202)) using (var sub = new MessageSubscriber("localhost", 9202)) { var handler = new TestSubscribeHandler(); sub.SetReceiveHandleEvent(handler); sub.Listen(); sub.Subscribe(Encoding.UTF8.GetBytes("A")); Thread.Sleep(200); pub.Send(Encoding.UTF8.GetBytes("A"), Encoding.UTF8.GetBytes("hello")); Thread.Sleep(200); Assert.Equal("A", Encoding.UTF8.GetString(handler.Block[0])); Assert.Equal("hello", Encoding.UTF8.GetString(handler.Block[1])); handler.Block = null; sub.Unsubscribe(Encoding.UTF8.GetBytes("A")); Thread.Sleep(200); pub.Send(Encoding.UTF8.GetBytes("A"), Encoding.UTF8.GetBytes("hello")); Thread.Sleep(200); Assert.Null(handler.Block); } }
public void DisposeRecipientWrapped() { var target = new Messenger(); var subscriber = new MessageSubscriber(target); bool received = false; subscriber.Subscribe <Message>(m => received = true); int c = target.Publish(Message.Empty); Assert.AreEqual(1, c); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.IsTrue(received); received = false; subscriber = null; GC.Collect(); GC.WaitForPendingFinalizers(); c = target.Publish(Message.Empty); Assert.AreEqual(0, c); }
public IBusSubscriber Subscribe <T>(Func <IServiceProvider, T, object, Task> handle) where T : class { var type = typeof(T); _messageSubscribersChannel.Writer.TryWrite(MessageSubscriber.Subscribe(type, (serviceProvider, message, context) => handle(serviceProvider, (T)message, context))); return(this); }
public void MessageWithoutParameterIsReceivedWrapped() { Messenger target = new Messenger(); MessageSubscriber subscriber = new MessageSubscriber(target); bool received1 = false; bool received2 = false; subscriber.Subscribe <Message>(m => received1 = true); subscriber.Subscribe <Message>(m => received2 = true); target.Publish(Message.Empty); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.IsTrue(received1); Assert.IsTrue(received2); }
public void MessageWithoutParameterIsReceivedWrapped() { Messenger target = new Messenger(); MessageSubscriber subscriber = new MessageSubscriber(target); bool received1 = false; bool received2 = false; subscriber.Subscribe<Message>(m => received1 = true); subscriber.Subscribe<Message>(m => received2 = true); target.Publish(Message.Empty); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.IsTrue(received1); Assert.IsTrue(received2); }
public void NotifiedInRegistrationOrderWrapped() { Messenger target = new Messenger(); MessageSubscriber subscriber = new MessageSubscriber(target); int notificationCounter = 0; int notified1 = 0; int notified2 = 0; subscriber.Subscribe <Message>(m => notified1 = ++notificationCounter); subscriber.Subscribe <Message>(m => notified2 = ++notificationCounter); target.Publish(Message.Empty); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.AreEqual(1, notified1); Assert.AreEqual(2, notified2); }
public NotificationManager() { _notifications = new ObservableCollection <Notification>(); _subscriptions = new MessageSubscriber(); _closeCommand = new RelayCommand <Notification>(Remove); _subscriptions.Subscribe <NotificationMessage>(OnNotificationMessage); _notificationControl = new Notifications(); _notificationControl.CloseCommand = _closeCommand; _notificationControl.ItemsSource = _notifications; _notificationControl.SizeChanged += OnContentResized; _notificationPopup = new Popup(); _notificationPopup.Child = _notificationControl; _notifications.CollectionChanged += OnNotificationsCollectionChanged; }
public void Post([FromBody] PublishConfiguration publishConfiguration) { foreach (var item in _context.channelOnboard) { MessagePublisher mp = new MessagePublisher(item.sourceName, publishConfiguration.sourceNotificationInterval); var subscriber = _context.subscriberOnboard.Where(s => s.ChannelId == item.Id).FirstOrDefault(); if (subscriber != null) { MessageSubscriber sub1 = new MessageSubscriber(subscriber.SubEmail, subscriber.Category); sub1.Subscribe(mp); mp.Publish(); IntrimData.SetData(mp.GetAllNotification()); //_context.notificationQueue.AddRange(mp.GetAllNotification()); //_context.SaveChanges(); } } }
public void PubSubTopic(string topic, string message) { using (var pub = new MessagePublisher(9201)) using (var sub = new MessageSubscriber("localhost", 9201)) { var handler = new TestSubscribeHandler(); sub.SetReceiveHandleEvent(handler); sub.Listen(); sub.Subscribe(Encoding.UTF8.GetBytes(topic)); Thread.Sleep(200); pub.Send(Encoding.UTF8.GetBytes(topic), Encoding.UTF8.GetBytes(message)); Thread.Sleep(200); Assert.Equal(topic, Encoding.UTF8.GetString(handler.Block[0])); Assert.Equal(message, Encoding.UTF8.GetString(handler.Block[1])); } }
static void Main(string[] args) { try { TransportSettings ts = TransportSettings.UseRabbitMq("localhost"); int saltNumber = new Random().Next(1000, 10000); string appName = string.Format("cclient_{0}", saltNumber); var bus = ServiceBusFactory.New(sbc => { sbc.ReceiveFrom(ts.GetQueueUri(appName)); sbc.UseControlBus(); ts.ApplyGlobalConfig(sbc); }); bus.PublishRequest(new NodeSetupRequest { NodeId = appName, CorrelationId = CombGuid.Generate(), NqApplicationId = 1000, NqInstanceNumber = 0, NqApplicationVersionInfo = "1.0.0.0" }, x => { x.HandleTimeout(TimeSpan.FromSeconds(10d), () => { Console.WriteLine("Node setup request timed out - please ensure server connectivity and try again."); throw new TimeoutException(); }); x.HandleFault(fault => { Console.WriteLine("Node setup request total error."); throw new IOException(); }); x.Handle<NodeSetupResponse>(msg => { Console.WriteLine("Got NodeSetupResponse: " + msg.ToString()); x.SetTimeout(TimeSpan.FromSeconds(30)); }); }); using (var ms = new MessageSubscriber(bus)) { ms.Subscribe(); Console.WriteLine("Waiting for messages. Press Escape to exit."); while (Console.ReadKey().Key != ConsoleKey.Escape) { Thread.Sleep(10); } } bus.Dispose(); } catch (TimeoutException) { } catch (IOException) { } }
public void Register() { _subscriber.Subscribe <Message>(Action); }
public void NotifiedInRegistrationOrderWrapped() { Messenger target = new Messenger(); MessageSubscriber subscriber = new MessageSubscriber(target); int notificationCounter = 0; int notified1 = 0; int notified2 = 0; subscriber.Subscribe<Message>(m => notified1 = ++notificationCounter); subscriber.Subscribe<Message>(m => notified2 = ++notificationCounter); target.Publish(Message.Empty); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.AreEqual(1, notified1); Assert.AreEqual(2, notified2); }
public void DisposeRecipientWrapped() { var target = new Messenger(); var subscriber = new MessageSubscriber(target); bool received = false; subscriber.Subscribe<Message>(m => received = true); int c = target.Publish(Message.Empty); Assert.AreEqual(1, c); #if !SILVERLIGHT DisplayContext.Current.Dispatcher.DoEvents(); #endif Assert.IsTrue(received); received = false; subscriber = null; GC.Collect(); GC.WaitForPendingFinalizers(); c = target.Publish(Message.Empty); Assert.AreEqual(0, c); }