private void DoPublish(string subject, Message message, uint delay = 0) { if (Message.RECEIVE_ONLY == subject) { throw new InvalidOperationException(Resources.NatsMessagingProvider_PublishReceiveOnlyMessage); } log.Debug(Resources.NatsMessagingProvider_PublishMessage_Fmt, subject, delay, message); string formattedMessage = NatsCommand.FormatPublishMessage(subject, message); log.Trace(Resources.NatsMessagingProvider_LogSent_Fmt, formattedMessage); if (delay == 0) { Write(formattedMessage); } else { var delayTimer = new MessageTimer(delay, formattedMessage) { AutoReset = false }; delayTimer.Elapsed += DelayedPublishElapsedHandler; delayTimer.Enabled = true; } }
private void SendSubscription(NatsSubscription subscription) { log.Debug(Resources.NatsMessagingProvider_SubscribingToSubject_Fmt, subscription, subscription.SubscriptionID); string formattedMessage = NatsCommand.FormatSubscribeMessage(subscription, subscription.SubscriptionID); log.Trace(Resources.NatsMessagingProvider_LogSent_Fmt, formattedMessage); Write(formattedMessage); }
private void SendConnectMessage() { if (NatsMessagingStatus.RUNNING != status) { throw new InvalidOperationException(); } var message = new Connect { Verbose = false, Pedantic = false, }; if (false == natsUser.IsNullOrWhiteSpace()) { message.User = natsUser; message.Password = natsPassword ?? String.Empty; } string msgstr = NatsCommand.FormatConnectMessage(message); log.Debug(Resources.NatsMessagingProvider_PublishConnect_Fmt, msgstr); Write(msgstr); }
public void Publish(NatsCommand command, Message message) { DoPublish(command.Command, message); }