public void OnMessage(IMessageParser parser) { OnTopicMessage msg = MessageEvent; if (msg != null) { msg(parser); } }
private void OnTopicMessage(IMessageParser parser) { OnTopicMessage msg = TopicMessageEvent; if (msg != null) { string topic = parser.Topic; if (_regex.IsMatch(parser.Topic)) { msg(parser); } } }
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); } }
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); } }