public GatewayProxy(string gatewayId, IObservable <PacketEventArgs> gatewaysStream, IEndPointBinding cloudBinding, ITelemetryLogger logger) { _gatewayId = gatewayId; _cloudBinding = cloudBinding; _logger = logger; _cloudBinding.PacketReceived += OnPacketReceived; _gatewayStreamSubscription = gatewaysStream .Subscribe(this); //_cleanChannelsSubscription = Observable // .Interval(TimeSpan.FromSeconds(60)) // .Subscribe(x => _gatewayChannels.Where(c => c.Value.LastAccessed < DateTime.UtcNow.AddSeconds(60)).Select(v => v.Key).ToList().ForEach(k => _gatewayChannels.Remove(k))); _cloudBinding.ListenAsync(null); }
public void Start() { _gatewayBinding.ListenAsync(_endpoint); }