Esempio n. 1
0
        public void OnMessage(IMessageParser parser)
        {
            OnTopicMessage msg = MessageEvent;

            if (msg != null)
            {
                msg(parser);
            }
        }
Esempio n. 2
0
        private void OnTopicMessage(IMessageParser parser)
        {
            OnTopicMessage msg = TopicMessageEvent;

            if (msg != null)
            {
                string topic = parser.Topic;
                if (_regex.IsMatch(parser.Topic))
                {
                    msg(parser);
                }
            }
        }
Esempio n. 3
0
        private void ConsumeMessages(IMessage message)
        {
            var msg = message as ITextMessage;

            XmlSerializer serializer = new XmlSerializer(typeof(TopicMessage));

            using (TextReader reader = new StringReader(msg.Text))
            {
                var topicMessage        = serializer.Deserialize(reader) as TopicMessage;
                OnMessageEventArgs args = new OnMessageEventArgs
                {
                    Message = topicMessage
                };
                OnTopicMessage?.Invoke(this, args);
            }
        }
Esempio n. 4
0
        private void OnMessage(IMessageParser parser)
        {
            ByteMessageParser bytes = new ByteMessageParser(parser.Topic, parser.ParseBytes(), parser.EndPoint);
            bool discard            = false;

            lock (_lock)
            {
                if (_msgQueue.Count >= _maxSize)
                {
                    discard = true;
                }
                else
                {
                    _msgQueue.Add(bytes);
                    Monitor.Pulse(_lock);
                }
            }
            OnTopicMessage discardMsg = DiscardEvent;

            if (discard && discardMsg != null)
            {
                discardMsg(bytes);
            }
        }