internal void Server_ClientDisconnected(IMqttServerEx server, MqttServerClientDisconnectedEventArgs args) { try { if (_device.Exists(args.ClientId)) { var _xdev = _device.Get <Device>(args.ClientId); var dev = _xdev.Value; using (var scope = _scopeFactor.CreateScope()) using (var _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>()) { var devtmp = _dbContext.Device.FirstOrDefault(d => d.Id == dev.Id); devtmp.LastActive = DateTime.Now; _dbContext.SaveChanges(); _logger.LogInformation($"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType} Device is {devtmp.Name }({devtmp.Id}) "); } } else { _logger.LogWarning($"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType}, 未能在缓存中找到"); } } catch (Exception ex) { _logger.LogError(ex, $"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType},{ex.Message}"); } }
internal void Server_ClientDisconnected(IMqttServerEx server, MqttServerClientDisconnectedEventArgs args) { Task.Run(async() => { try { var dev = await FoundDevice(args.ClientId); if (dev != null) { using (var scope = _scopeFactor.CreateScope()) using (var _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>()) { var devtmp = _dbContext.Device.FirstOrDefault(d => d.Id == dev.Id); devtmp.LastActive = DateTime.Now; devtmp.Online = false; _dbContext.SaveChanges(); _logger.LogInformation($"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType} Device is {devtmp.Name }({devtmp.Id}) "); } } else { _logger.LogWarning($"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType}, 未能在缓存中找到"); } } catch (Exception ex) { _logger.LogError(ex, $"Server_ClientDisconnected ClientId:{args.ClientId} DisconnectType:{args.DisconnectType},{ex.Message}"); } }); }
public CheckDevices(ILogger <CheckDevices> logger, IServiceScopeFactory scopeFactor, IMqttServerEx serverEx , IOptions <AppSettings> options) { _mcsetting = options.Value.MqttClient; _logger = logger; _scopeFactor = scopeFactor; _serverEx = serverEx; }
internal void Server_ClientDisconnected(IMqttServerEx server, MqttServerClientDisconnectedEventArgs args) { try { Devices.Remove(args.ClientId); } catch (Exception) { } }
public MQTTServerHandler(ILogger <MQTTServerHandler> logger, IServiceScopeFactory scopeFactor, IMqttServerEx serverEx , IOptions <AppSettings> options ) { _mcsetting = options.Value.MqttClient; _logger = logger; scope = scopeFactor.CreateScope(); _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>(); _serverEx = serverEx; }
public CheckDevices(ILogger <CheckDevices> logger, IServiceScopeFactory scopeFactor, IMqttServerEx serverEx , IOptions <AppSettings> options, IEasyCachingProviderFactory factory) { _mcsetting = options.Value.MqttClient; _logger = logger; _scopeFactor = scopeFactor; _factory = factory; _serverEx = serverEx; _device = _factory.GetCachingProvider("iotsharp"); }
public MQTTServerHandler(ILogger <MQTTServerHandler> logger, IServiceScopeFactory scopeFactor, IMqttServerEx serverEx , IOptions <AppSettings> options, ICapPublisher queue, IEasyCachingProviderFactory factory ) { _mcsetting = options.Value.MqttClient; _logger = logger; _scopeFactor = scopeFactor; _factory = factory; _serverEx = serverEx; _queue = queue; }
public DevicesController(UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, ILogger <DevicesController> logger, IMqttServerEx serverEx, ApplicationDbContext context, IMqttClientOptions mqtt, IStorage storage) { _context = context; _mqtt = mqtt; _userManager = userManager; _signInManager = signInManager; _logger = logger; _storage = storage; _serverEx = serverEx; }
public MQTTServerHandler(ILogger <MQTTServerHandler> logger, IServiceScopeFactory scopeFactor, IMqttServerEx serverEx, DiagnosticsService diagnosticsService, RuntimeStatusHandler systemStatusService, IOptions <AppSettings> options ) { _mcsetting = options.Value.MqttClient; _logger = logger; scope = scopeFactor.CreateScope(); _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>(); _serverEx = serverEx; InboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.inbound_rate"); OutboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.outbound_rate"); systemStatusService.Set("mqtt.subscribers_count", () => Subscribers.Count); systemStatusService.Set("mqtt.incoming_messages_count", () => IncomingMessages.Count); systemStatusService.Set("mqtt.inbound_rate", () => InboundCounter.Count); systemStatusService.Set("mqtt.outbound_rate", () => OutboundCounter.Count); systemStatusService.Set("mqtt.connected_clients_count", () => serverEx.GetClientStatusAsync().GetAwaiter().GetResult().Count); }
public MqttEventsHandler(ILogger <MqttEventsHandler> logger, ApplicationDbContext dbContext, IMqttServerEx serverEx) { _logger = logger; _dbContext = dbContext; _serverEx = serverEx; }