Exemple #1
0
        public MqttManager()
        {
            // create managers (publisher, subscriber, session and UAC)
            this.subscriberManager = new MqttSubscriberManager();
            this.sessionManager    = new MqttSessionManager();
            this.publisherManager  = new MqttPublisherManager(this.subscriberManager, this.sessionManager);
            this.uacManager        = new MqttUacManager();

            this.clients = new MqttClientCollection();

            mqttBridge = Composable.GetExport <IMqttBridge>();
        }
Exemple #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="commLayer">Communication layer to use (TCP)</param>
        /// <param name="settings">Broker settings</param>
        public MqttBroker(IMqttCommunicationLayer commLayer, MqttSettings settings)
        {
            // MQTT broker settings
            this.settings = settings;

            // MQTT communication layer
            this.commLayer = commLayer;
            this.commLayer.ClientConnected += commLayer_ClientConnected;

            // create managers (publisher, subscriber, session and UAC)
            this.subscriberManager = new MqttSubscriberManager();
            this.sessionManager    = new MqttSessionManager();
            this.publisherManager  = new MqttPublisherManager(this.subscriberManager, this.sessionManager);
            this.uacManager        = new MqttUacManager();

            this.clients = new MqttClientCollection();
        }
        public MqttBroker(ILogger logger, MqttOptions options)
        {
            MqttAsyncTcpSender.Init(options);

            this.logger            = logger;
            this.uacManager        = new MqttUacManager();
            this.rawMessageManager = new MqttRawMessageManager(options);
            this.asyncTcpReceiver  = new MqttAsyncTcpReceiver(rawMessageManager);
            this.connectionManager = new MqttClientConnectionManager(logger, options, asyncTcpReceiver);

            var numberOfProcessingManagersNeeded = options.MaxConnections / options.ConnectionsPrProcessingManager;

            this.processingManagers = new MqttClientConnectionProcessingManager[numberOfProcessingManagersNeeded];
            for (var i = 0; i < processingManagers.Length; i++)
            {
                processingManagers[i] = new MqttClientConnectionProcessingManager(logger, connectionManager, uacManager, asyncTcpReceiver);
            }

            this.processingLoadbalancer = new MqttProcessingLoadbalancer(logger, processingManagers);

            this.socketListener = new MqttAsyncTcpSocketListener(processingLoadbalancer, connectionManager, options);
        }