Пример #1
0
        public async Task Fire_Client_Subscribed_Event()
        {
            using (var testEnvironment = CreateTestEnvironment())
            {
                var server = await testEnvironment.StartServer();

                MqttServerClientSubscribedTopicEventArgs eventArgs = null;
                server.ClientSubscribedTopicHandler = new MqttServerClientSubscribedTopicHandlerDelegate(e =>
                {
                    eventArgs = e;
                });

                var client = await testEnvironment.ConnectClient();

                await client.SubscribeAsync("The/Topic", MqttQualityOfServiceLevel.AtLeastOnce);

                await LongTestDelay();

                Assert.IsNotNull(eventArgs);

                Assert.IsTrue(eventArgs.ClientId.StartsWith(nameof(Fire_Client_Subscribed_Event)));
                Assert.AreEqual("The/Topic", eventArgs.TopicFilter.Topic);
                Assert.AreEqual(MqttQualityOfServiceLevel.AtLeastOnce, eventArgs.TopicFilter.QualityOfServiceLevel);
            }
        }
Пример #2
0
 /// <summary>
 /// 某客户端订阅了某主题
 /// </summary>
 public void EH_ClientSubscribed(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     LMLogs.NLog.Logger.Log(LMLogs.LogLevel.Info,
                            $"检测到有客户端订阅了主题:\n" +
                            $"客户端名称:<{eventArgs.ClientId}>\n" +
                            $"主题名:<{eventArgs.TopicFilter.Topic}>");
 }
Пример #3
0
        internal void Server_ClientSubscribedTopic(object sender, MqttServerClientSubscribedTopicEventArgs e)
        {
            _logger.LogInformation($"Client [{e.ClientId}] subscribed [{e.TopicFilter}]");

            if (e.TopicFilter.Topic.StartsWith("$SYS/"))
            {
                if (e.TopicFilter.Topic.StartsWith("$SYS/broker/version"))
                {
                    var mename  = typeof(MQTTServerHandler).Assembly.GetName();
                    var mqttnet = typeof(MqttServerClientSubscribedTopicEventArgs).Assembly.GetName();
                    Task.Run(() => _serverEx.PublishAsync("$SYS/broker/version", $"{mename.Name}V{mename.Version.ToString()},{mqttnet.Name}.{mqttnet.Version.ToString()}"));
                }
                else if (e.TopicFilter.Topic.StartsWith("$SYS/broker/uptime"))
                {
                    Task.Run(() => _serverEx.PublishAsync("$SYS/broker/uptime", uptime.ToString()));
                }
            }
            if (e.TopicFilter.Topic.ToLower().StartsWith("/devices/telemetry"))
            {
            }
            else
            {
                Subscribed++;
                Task.Run(() => _serverEx.PublishAsync("$SYS/broker/subscriptions/count", Subscribed.ToString()));
            }
        }
Пример #4
0
        public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
        {
            lbxMessage.BeginInvoke(this.updateListBoxAction,
                                   $"@ClientSubscribedTopic ClientId:{eventArgs.ClientId} Topic:{eventArgs.TopicFilter.Topic} QualityOfServiceLevel:{eventArgs.TopicFilter.QualityOfServiceLevel}");

            return(Task.FromResult(0));
        }
Пример #5
0
        /// <summary>
        /// 客户订阅
        /// </summary>
        /// <param name="e"></param>
        private static void MqttNetServer_SubscribedTopic(MqttServerClientSubscribedTopicEventArgs e)
        {
            //客户端Id
            var ClientId = e.ClientId;
            var Topic    = e.TopicFilter.Topic;

            Console.WriteLine($"客户端[{ClientId}]已订阅主题:{Topic}");
        }
        /// <summary>
        /// 客户订阅
        /// </summary>
        private void MqttNetServer_SubscribedTopic(MqttServerClientSubscribedTopicEventArgs e)
        {
            //客户端Id
            string ClientId = e.ClientId;
            string Topic    = e.TopicFilter.Topic;

            log.LogInformation($"client [{ClientId}] Subscribed Topic [{Topic}]");
        }
Пример #7
0
 internal void Server_ClientSubscribedTopic(object sender, MqttServerClientSubscribedTopicEventArgs e)
 {
     _logger.LogInformation($"Client [{e.ClientId}]Subscribed[{e.TopicFilter}]");
     if (e.TopicFilter.Topic.StartsWith("$SYS/"))
     {
         BrokerStatus.SYSTopics.Add(e.TopicFilter.Topic);
     }
     else
     {
         MQTTBroker.Status.Subscribed++;
     }
 }
Пример #8
0
        public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs context)
        {
            try
            {
                //_logger.LogInformation($"Received subscribe request from '{context.ClientId}' for topic '{context.TopicFilter.Topic}'");
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, $"Error while handling client subscribed topic event from '{context.ClientId}'");
            }

            return(Task.CompletedTask);
        }
Пример #9
0
        public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
        {
            Publisher publisher;

            if (publishers.TryGetValue(eventArgs.ClientId, out publisher))
            {
                publisher.AddPublishFilter(eventArgs.ClientId, eventArgs.TopicFilter.Topic);
            }
            else
            {
                throw new Exception($"Could not subscribe {eventArgs.ClientId} to topic {eventArgs.TopicFilter}!");
            }
            return(Task.CompletedTask);
        }
Пример #10
0
        public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
        {
            try
            {
                var pythonEventArgs = new PythonDictionary
                {
                    { "client_id", eventArgs.ClientId },
                    { "topic", eventArgs.TopicFilter.Topic },
                    { "qos", (int)eventArgs.TopicFilter.QualityOfServiceLevel }
                };

                _pythonScriptHostService.InvokeOptionalFunction("on_client_subscribed_topic", pythonEventArgs);
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, "Error while handling client subscribed topic event.");
            }

            return(Task.CompletedTask);
        }
Пример #11
0
 private void OnClientSubscribedTopicHandler(MqttServerClientSubscribedTopicEventArgs e)
 {
     Console.WriteLine("Client Id: " + e.ClientId + " subscribed topic " + e.TopicFilter.Topic);
 }
 public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     return(_handlerInstance.ClientSubscribedTopic(new RemoteSubscribedEvent(eventArgs.ClientId, eventArgs.TopicFilter.Topic)));
 }
Пример #13
0
 public async Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     Console.WriteLine(eventArgs.ClientId + ":" + eventArgs.TopicFilter);
 }
Пример #14
0
 public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     throw new System.NotImplementedException();
 }
Пример #15
0
 public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     return(Task.FromResult(""));
 }
Пример #16
0
 public Task ClientSubscribedAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     return(Task.CompletedTask);
 }
Пример #17
0
 private async Task SubscribeTopic(MqttServerClientSubscribedTopicEventArgs topicArg)
 {
     nlogger.Debug("topic subscribed." + topicArg.TopicFilter.Topic);
 }
Пример #18
0
 public static void OnMqttServerClientSubscribedTopic(MqttServerClientSubscribedTopicEventArgs e)
 {
     //Console.WriteLine($"客户端[{e.ClientId}]已成功订阅主题[{e.TopicFilter}]!");
 }
Пример #19
0
 public void OnMqttServerClientSubscribedTopic(MqttServerClientSubscribedTopicEventArgs e)
 {
     //Console.WriteLine($"客户端[{e.ClientId}]已成功订阅主题[{e.TopicFilter}]!");
     lbxMonitor.BeginInvoke(_updateMonitorAction,
                            Logger.TraceLog(Logger.Level.Info, $"客户端[{e.ClientId}]已成功订阅主题[{e.TopicFilter}]!"));
 }
 public Task HandleClientSubscribedTopicAsync(MqttServerClientSubscribedTopicEventArgs eventArgs)
 {
     _logger.LogInformation($"Client: {eventArgs.ClientId} subscribed to {eventArgs.TopicFilter.Topic} topic!");
     return(Task.CompletedTask);
 }