private void OnMessage(object sender, MessageEventArgs e) { Message msg = Message.Receive(e.RawData); if (msg.sequence >= 0) { // Normal message IMailbox returnTo = null; if (pendingResponses.TryGetValue(msg.sequence, out returnTo)) { pendingResponses.Remove(msg.sequence); returnTo.DeliverMessage(msg); } } else { IMailbox sub = null; if (pushSubscriptions.TryGetValue(msg.source, out sub)) { sub.DeliverMessage(msg); } } }