private void PublishMessage(AgentBrokerPayload data) { var context = data.Context ?? ApplicationMessageContext; var message = _messageConverter.ConvertMessage(data.Payload, context, data.Ordinal); _messagePublisher.PublishMessage(message); // TODO: Hook into offThread }
public void SendMessage(object payload) { // need to fetch context data here as we are about to start switching threads var data = new AgentBrokerPayload(payload, _context.Value, Interlocked.Increment(ref _ordinal)); // non-blocking _publisherInternalSubject.OnNext(data); // non-blocking _offSenderThreadInternalSubject.OnNext(data); // blocking _onSenderThreadSubject.OnNext(data); }