public IDisposable StartServer() { var monitor = new ConnectionRateMonitor(); var binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; var listener = binding.Start(this.ConnectArguments.CreateNetTcpAddress()); Console.WriteLine("Listening on {0} for {1}", listener.Uri, typeof(SimpleObject).Name); listener.GetChannels() .SubscribeOn(System.Reactive.Concurrency.ThreadPoolScheduler.Instance) .Subscribe(c => { monitor.OnConnect(); c.GetMessages() .Subscribe( m => { monitor.OnMessage(); var obj = m.GetBody<SimpleObject>(); }, ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return Disposable.Create(listener.Abort); }
private IDisposable FixedLenghtWithAck() { var sockets = SocketEvents.GetTcpStreamSockets(_port); var monitor = new ConnectionRateMonitor(); sockets.GetConnections() .Subscribe(connection => { monitor.OnConnect(); connection .ToLengthPrefixed() .Subscribe(context => { var response = HandleMessage(context.Message); monitor.OnMessage(); context.Publish(response); }, ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return(sockets); }
public IDisposable StartServer() { var monitor = new ConnectionRateMonitor(); var binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; var listener = binding.Start(_address); Console.WriteLine("Listening on " + listener.Uri); listener.GetChannels() .SubscribeOn(System.Reactive.Concurrency.ThreadPoolScheduler.Instance) .Subscribe(c => { monitor.OnConnect(); c.GetMessages() .Subscribe( m => monitor.OnMessage(), ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return(Disposable.Create(listener.Abort)); }
private IDisposable FixedLenghtWithAck() { var sockets = SocketEvents.GetTcpStreamSockets(_port); var monitor = new ConnectionRateMonitor(); sockets.GetConnections() .Subscribe(connection => { monitor.OnConnect(); connection .ToLengthPrefixed() .Subscribe(context => { var response = HandleMessage(context.Message); monitor.OnMessage(); context.Publish(response); }, ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return sockets; }
private IDisposable SimpleReceiver() { var sockets = SocketEvents.GetTcpStreamSockets(_port); var monitor = new ConnectionRateMonitor(); sockets.Subscribe(s => { monitor.OnConnect(); var receiver = s.CreateReceiver(); receiver.Subscribe( d => monitor.OnMessage(), ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return sockets; }
private IDisposable SimpleReceiver() { var sockets = SocketEvents.GetTcpStreamSockets(_port); var monitor = new ConnectionRateMonitor(); sockets.Subscribe(s => { monitor.OnConnect(); var receiver = s.CreateReceiver(); receiver.Subscribe( d => monitor.OnMessage(), ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return(sockets); }
public IDisposable StartServer() { var monitor = new ConnectionRateMonitor(); var binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; var listener = binding.Start(_address); Console.WriteLine("Listening on " + listener.Uri); listener.GetChannels() .SubscribeOn(System.Reactive.Concurrency.ThreadPoolScheduler.Instance) .Subscribe(c => { monitor.OnConnect(); c.GetMessages() .Subscribe( m => monitor.OnMessage(), ex => monitor.OnDisconnect(), monitor.OnDisconnect); }); monitor.Start(); return Disposable.Create(listener.Abort); }