static void Main(string[] args) { var serializer = new StringMessageSerializer(); var serverCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2000), serializer); using (var publisher = Scenarios.PubSub.Publisher(serverCommunication)) { var clientCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Loopback, 2000), serializer); using (Subscribe(clientCommunication, "client1")) using (Subscribe(clientCommunication, "client2")) using (Subscribe(clientCommunication, "client3")) { publisher.Broadcast("topic", new StringMessage("broadcast message 1")); publisher.Broadcast("topic", new StringMessage("broadcast message 2")); publisher.Broadcast("topic", new StringMessage("broadcast message 3")); while (_closedChannels < 3) { Thread.Sleep(0); } } } Console.ReadKey(); }
public UdpMessageSender(NetworkParticipiantConfiguration configuration) { _client = new UdpClient(0); _encoding = configuration.Encoding; _serializer = new StringMessageSerializer(configuration.Separator); _serverEndPoint = new IPEndPoint(IPAddress.Loopback, configuration.Port); }
public UdpMessageReceiver(NetworkParticipiantConfiguration configuration) { _server = new UdpClient(configuration.Port); _serverThread = new Thread(RunServer); _encoding = configuration.Encoding; _serializer = new StringMessageSerializer(configuration.Separator); }
public TcpMessageSender(NetworkParticipiantConfiguration configuration) { _encoding = configuration.Encoding; _client = new TcpClient(new IPEndPoint(IPAddress.Any, 0)); _client.Connect(new IPEndPoint(IPAddress.Loopback, configuration.Port)); _stream = _client.GetStream(); _serializer = new StringMessageSerializer(configuration.Separator); }
public TextFileMessageSender(TextFileParticipiantConfiguration configuration) : base(configuration) { _writer = new StreamWriter(Stream) { AutoFlush = true }; _serializer = new StringMessageSerializer(configuration.Separator); }
public TcpMessageReceiver(NetworkParticipiantConfiguration configuration) { _encoding = configuration.Encoding; _listener = new TcpListener(IPAddress.Loopback, configuration.Port); _listener.Start(); _serverThread = new Thread(RunServer); _serializer = new StringMessageSerializer(configuration.Separator); }
public void ThrowExceptionWhenMessageIsNotStringMessage() { var serializer = new StringMessageSerializer(); var message = new RowBytesMessage(null); Assert.Throws <ArgumentException>(() => { serializer.Serialize(message); }); }
public void SuccessfulySerializeNonEmptyMessage() { var serializer = new StringMessageSerializer(); var message = new StringMessage("123 asd asd"); var serializedMessage = serializer.Serialize(message); var deserializedMessage = serializer.Deserialize(serializedMessage); Assert.That(message.Message, Is.EqualTo(deserializedMessage.Message)); }
static void Main(string[] args) { Console.WriteLine("TLS example"); var serializer = new StringMessageSerializer(); var serverTlsWrapper = new ServerTlsWrapper(new X509Certificate2("server.pfx"), false, CertificateValidationCallback); ICommunication <StringMessage> serverCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2000), serializer, ChannelSettings.GetDefault(), TcpConnectionSettingsBuilder.GetDefaultSettings(), serverTlsWrapper); var server = Scenarios.RequestResponse.SetupServer(serverCommunication) .UsingNewClientHandler((sender, a) => { Console.WriteLine("channel opened"); }) .UsingRequestHandler((sender, a) => { a.Response = new StringMessage(a.Request.Message.Replace("request", "response")); }) .UsingChannelClosedHandler((sender, a) => { Console.WriteLine("channel closed"); }) .Go(); var clientTlsWrapper = new ClientTlsWrapper("SharpChannels Example Server Certificate", new X509Certificate[] { new X509Certificate2("client.pfx") }, false, CertificateValidationCallback); ICommunication <StringMessage> clientCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Loopback, 2000), serializer, ChannelSettings.GetDefault(), TcpConnectionSettingsBuilder.GetDefaultSettings(), clientTlsWrapper); var r = Scenarios.RequestResponse.Requester(clientCommunication); using (r.Channel) { r.Channel.Open(); var requester = new Requester(r.Channel); var requestMessage = new StringMessage($"request using tls"); Console.WriteLine(requestMessage); var responseMessage = requester.Request(requestMessage); Console.WriteLine(responseMessage); r.Channel.Close(); } server.Stop(); Console.ReadKey(); }
public async Task Send(SendContext context) { context.DestinationAddress = _instance.ResponseAddress; context.SourceAddress = _instance.SagaAddress; context.FaultAddress = _instance.FaultAddress; context.RequestId = _instance.CorrelationId; if (_instance.ExpirationTime.HasValue) { var timeToLive = DateTime.UtcNow - _instance.ExpirationTime.Value; context.TimeToLive = timeToLive > TimeSpan.Zero ? timeToLive : TimeSpan.FromSeconds(1); } var bodySerializer = new StringMessageSerializer(_context.ReceiveContext.ContentType, _body); context.Serializer = bodySerializer; }
static void Main(string[] args) { var serializer = new StringMessageSerializer(); var communication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2000), serializer); var server = Scenarios.RequestResponse.SetupServer(communication) .UsingNewClientHandler((sender, a) => { Console.WriteLine("channel opened"); }) .UsingRequestHandler((sender, a) => { a.Response = new StringMessage(a.Request.Message.Replace("request", "response")); }) .UsingChannelClosedHandler((sender, a) => { Console.WriteLine("channel closed"); }) .Go(); var clientCommunication = new TcpCommunication <StringMessage>( new TcpEndpointData(IPAddress.Loopback, 2000), serializer); var r = Scenarios.RequestResponse.Requester(clientCommunication); using (r.Channel) { r.Channel.Open(); for (int i = 0; i < 100; i++) { var requestMessage = new StringMessage($"request #{i}"); Console.WriteLine(requestMessage); var responseMessage = r.Request(requestMessage); Console.WriteLine(responseMessage); } r.Channel.Close(); } server.Stop(); Console.ReadKey(); }
static void Main(string[] args) { var serializer = new StringMessageSerializer(); var serverSubscribersCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2000), serializer); var serverPublishersCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2001), serializer); var clientSubscribersCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Loopback, 2000), serializer); var clientPublishersCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Loopback, 2001), serializer); var server = Scenarios.Bus.RunServer(serverSubscribersCommunication, serverPublishersCommunication); var client1 = Scenarios.Bus.SetupClient(clientSubscribersCommunication, clientPublishersCommunication) .UsingTopics(new[] { "first topic" }) .UsingMessageReceivedHandler((s, a) => { Console.WriteLine($"Client 1 received: {a.Message}"); }) .Go(); var client2 = Scenarios.Bus.SetupClient(clientSubscribersCommunication, clientPublishersCommunication) .UsingTopics(new[] { "second topic" }) .UsingMessageReceivedHandler((s, a) => { Console.WriteLine($"Client 2 received: {a.Message}"); }) .Go(); var client3 = Scenarios.Bus.SetupClient(clientSubscribersCommunication, clientPublishersCommunication) .UsingTopics(new[] { "second topic" }) .UsingMessageReceivedHandler((s, a) => { Console.WriteLine($"Client 3 received: {a.Message}"); }) .Go(); client1.Publish("second topic", new StringMessage("message for second topic")); client2.Publish("first topic", new StringMessage("message for first topic")); Console.ReadKey(); client1.Close(); client2.Close(); client3.Close(); }
public TextFileMessageReceiver(TextFileParticipiantConfiguration configuration) : base(configuration) { _configuration = configuration; _serializer = new StringMessageSerializer(configuration.Separator); }
static void Main(string[] args) { Console.WriteLine("Press '1' for TCP transport"); Console.WriteLine("Press '2' for Intradomain transport"); var transport = RequestTransport(); Console.WriteLine(); var serializer = new StringMessageSerializer(); ICommunication <StringMessage> serverCommunication; if (transport == Transport.Tcp) { serverCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Any, 2000), serializer); } else { serverCommunication = new IntradomainCommunication <StringMessage>(new IntradomainEndpoint("test"), serializer); } var server = Scenarios.RequestResponse.SetupServer(serverCommunication) .UsingNewClientHandler((sender, a) => { Console.WriteLine("channel opened"); }) .UsingRequestHandler((sender, a) => { a.Response = new StringMessage(a.Request.Message.Replace("request", "response")); }) .UsingChannelClosedHandler((sender, a) => { Console.WriteLine("channel closed"); }) .Go(); ICommunication <StringMessage> clientCommunication; if (transport == Transport.Tcp) { clientCommunication = new TcpCommunication <StringMessage>(new TcpEndpointData(IPAddress.Loopback, 2000), serializer); } else { clientCommunication = new IntradomainCommunication <StringMessage>(new IntradomainEndpoint("test"), serializer); } var r = Scenarios.RequestResponse.Requester(clientCommunication); using (r.Channel) { r.Channel.Open(); var requester = new Requester(r.Channel); var requestMessage = new StringMessage($"request using {transport} transport"); Console.WriteLine(requestMessage); var responseMessage = requester.Request(requestMessage); Console.WriteLine(responseMessage); r.Channel.Close(); } server.Stop(); Console.ReadKey(); }