private MqttIpcServer(MqttIpcServerConfiguration configuration, IIpcSerializer serializer, IIpcPacketRouter router, IIpcPacketHandlersContainer packetHandlersContainer) { _serializer = serializer; _router = router; _packetHandlersContainer = packetHandlersContainer; string clientName = configuration.ClientName; string endPoint = configuration.EndPoint; _client = new MqttFactory().CreateManagedMqttClient(new MqttNetLogger(clientName)); _packetFactory = new PacketContainerFactory(); _queues = new HashSet <string>(); _packetHandlersContainer.Registered += (sender, type) => CheckRouting(type).ConfigureAwait(false).GetAwaiter().GetResult(); _packetHandlersContainer.Unregistered += (sender, type) => { IRoutingInformation infos = _router.GetRoutingInformationsAsync(type).ConfigureAwait(false).GetAwaiter().GetResult(); _client.UnsubscribeAsync(infos.IncomingTopic).ConfigureAwait(false).GetAwaiter().GetResult(); }; ManagedMqttClientOptions options = new ManagedMqttClientOptionsBuilder() .WithAutoReconnectDelay(TimeSpan.FromSeconds(5)) .WithClientOptions(new MqttClientOptionsBuilder() .WithClientId(clientName) .WithTcpServer(endPoint) .Build()) .Build(); _client.ApplicationMessageReceived += (sender, args) => OnMessage(args.ClientId, args.ApplicationMessage); _client.StartAsync(options).ConfigureAwait(false).GetAwaiter().GetResult(); _client.Connected += (sender, args) => _log.Info($"[CONNECTED] {clientName} is connected on MQTT Broker {endPoint}"); _client.Disconnected += (sender, args) => _log.Info($"[DISCONNECTED] {clientName} has been disconnected on MQTT Broker {endPoint}"); }
public MqttIpcClient(MqttIpcClientConfiguration conf, IIpcPacketRouter router, IIpcSerializer serializer) { _router = router; _serializer = serializer; _packetFactory = new PacketContainerFactory(); _client = new MqttFactory().CreateManagedMqttClient(new MqttNetLogger(conf.ClientName)); _options = new ManagedMqttClientOptionsBuilder() .WithAutoReconnectDelay(TimeSpan.FromSeconds(5)) .WithClientOptions(new MqttClientOptionsBuilder() .WithClientId(conf.ClientName) .WithTcpServer(conf.EndPoint) .Build()) .Build(); _client.ConnectedHandler = new MqttClientConnectedHandlerDelegate(Client_OnConnected); _client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(Client_OnDisconnected); }
private MqttIpcClient(MqttIpcClientConfiguration conf, IIpcPacketRouter router, IIpcSerializer serializer) { _router = router; _serializer = serializer; _endPoint = conf.EndPoint; _name = conf.ClientName; _responsesQueues = new HashSet <string>(); _pendingRequests = new ConcurrentDictionary <Guid, PendingRequest>(); _packetFactory = new PacketContainerFactory(); _requestFactory = new PendingRequestFactory(); _client = new MqttFactory().CreateManagedMqttClient(new MqttNetLogger(conf.ClientName)); ManagedMqttClientOptions options = new ManagedMqttClientOptionsBuilder() .WithAutoReconnectDelay(TimeSpan.FromSeconds(5)) .WithClientOptions(new MqttClientOptionsBuilder() .WithClientId(_name) .WithTcpServer(_endPoint) .Build()) .Build(); _client.ApplicationMessageReceived += (sender, args) => OnMessage(args.ClientId, args.ApplicationMessage); _client.StartAsync(options).ConfigureAwait(false).GetAwaiter().GetResult(); }
public MqttIpcServer(MqttIpcServerConfiguration configuration, IIpcSerializer serializer, IIpcPacketRouter router, IIpcPacketHandlersContainer packetHandlersContainer) { _serializer = serializer; _router = router; _packetHandlersContainer = packetHandlersContainer; _client = new MqttFactory().CreateManagedMqttClient(new MqttNetLogger(configuration.ClientName)); _queues = new HashSet <string>(); _options = new ManagedMqttClientOptionsBuilder() .WithAutoReconnectDelay(TimeSpan.FromSeconds(5)) .WithClientOptions(new MqttClientOptionsBuilder() .WithClientId(configuration.ClientName) .WithTcpServer(configuration.EndPoint) .Build()) .Build(); // event handlers _client.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(Client_OnMessage); _client.ConnectedHandler = new MqttClientConnectedHandlerDelegate(Client_OnConnected); _client.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(Client_OnDisconnected); _packetHandlersContainer.Registered += HandlersContainer_OnRegistered; _packetHandlersContainer.Unregistered += HandlersContainer_OnUnregistered; }
public MqttIpcServer(MqttServerConfigurationBuilder builder, IIpcSerializer serializer, IIpcPacketRouter router, IIpcPacketHandlersContainer packetHandlersContainer) : this(builder.Build(), serializer, router, packetHandlersContainer) { }
public MqttIpcClient(MqttClientConfigurationBuilder builder, IIpcPacketRouter router, IIpcSerializer serializer) : this(builder.Build(), router, serializer) { }