public void PublishMessageReceived(PublishPacketReceivedEventArgs message) { if (_jsonConfigurator.GetSettings().RunInClusterSetup) { if (!_publishers.Any(x => x.Ip == message.IpAddress && x.Port == message.Port)) { lock (_harakaDb.GetLock(Setup.PublisherCs)) { var pubs = _harakaDb.GetObjects <Publisher>(Setup.PublisherCs); var publisher = new Publisher(message.IpAddress, message.Port, _jsonConfigurator.GetSettings().PrimaryNumber, message.SenderClient); pubs.Add(publisher); _harakaDb.StoreObject(Setup.PublisherCs, pubs); _publishers.Add(publisher); } } _queues.Find(x => x.GetTopicId() == message.Packet.Topic).AddEvent(new Event(message, EventType.TentativeMessage)); lock (_messagesLock) { OwnTentativeMessages.Add(message); } } else { _queues.Find(x => x.GetTopicId() == message.Packet.Topic).AddEvent(new Event(message, EventType.ComittedMessage)); lock (_messagesLock) { CommittedMessages.Add(message); } } }
private void PublishCommittedMessage(PublishPacketReceivedEventArgs message) { _topic.Subscribers = _db.GetSubScribers(_topic); foreach (var sub in _topic.Subscribers.Where(x => x.AttachedBroker == _jsonConfigurator.GetSettings().PrimaryNumber)) { _udpComm.SendPackage(message.Packet, sub.Ip, sub.Port); } }
private void PublishAndAddTentativeMessage(PublishPacketReceivedEventArgs message) { //Todo: store tentative messages _topic.Subscribers = _db.GetSubScribers(_topic); //Todo: Dont send messages to one that has already received it foreach (var sub in _topic.Subscribers.Where(x => x.ReceiveTentativeMessages && x.AttachedBroker == _jsonConfigurator.GetSettings().PrimaryNumber)) { _udpComm.SendPackage(message.Packet, sub.Ip, sub.Port); } }
protected virtual void OnMessageReceived(object sender, PublishPacketReceivedEventArgs e) { if (!consumers.Any()) { return; } var consumer = consumers.Find(x => x.Item2 == e.Packet.Topic); if (consumer == null) { return; } for (var i = 0; i < e.Packet.Messages.Count; i++) { var args = new BasicDeliverEventArgs { Body = e.Packet.Messages[i] }; consumer.Item1.MsgReceived(args); } }
private void PublishPacketToApplicationLayer(PublishPacketReceivedEventArgs e) { PublishPackage?.Invoke(this, e); }
private static void PublishMessageRecieved(object sender, PublishPacketReceivedEventArgs e) { _gossip.PublishMessageReceived(e); }
public void PublishMessageReceived(PublishPacketReceivedEventArgs publishPacketReceivedEventArgs) { publishPacketReceivedEventArgs.Packet.ReceivedAtBroker = _clock.ElapsedTimeSpan(); _antiEntropy.PublishMessageReceived(publishPacketReceivedEventArgs); //Debug.WriteLine("Messages Published to Broker - Number: " + message.AdministrationMessage.SeqNo + " Time: " + message.AdministrationMessage.ReceivedAtBroker); }
public void PublishMessageReceived(PublishPacketReceivedEventArgs publishPacketReceivedEventArgs) { publishPacketReceivedEventArgs.Packet.ReceivedAtBroker = _timeSyncProtocol.GetTime(); _antiEntropy.PublishMessageReceived(publishPacketReceivedEventArgs); //Debug.WriteLine("Messages Published to Broker - Number: " + message.AdministrationMessage.SeqNo + " Time: " + message.AdministrationMessage.ReceivedAtBroker); }