如何使用 MVC 在 mqtt 中获取订阅的消息?
How to get the Subscribed Message in mqtt using MVC?
我在mvc中尝试了mqtt发布订阅代码,
我可以使用以下代码发布消息。
string MQTT_BROKER_ADDRESS = "212.72.74.21";
MqttClient client = new MqttClient(MQTT_BROKER_ADDRESS);
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
string strValue = "Message to be Send";
client.Publish("Topic", Encoding.UTF8.GetBytes(strValue));
消息发布。
但是来订阅消息的时候收不到
我使用了以下代码。
MqttClient client = new MqttClient("212.72.74.21");
client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
client.Subscribe(new string[] { "Message1" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
订阅的消息必须在下面的方法中处理。
static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
//Handle Message recieved
}
但我的问题是程序没有进入订阅函数。
我该如何解决?
请提供一些想法来纠正我的问题。
您使用的订阅主题与您要发布的主题不同。确保两个主题相同。
将以下行更改为:
client.Publish("myTopic", Encoding.UTF8.GetBytes(strValue));
并将以下行添加到:
client.Subscribe(new string[] { "myTopic" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
在您的委托中,打印出一些有用的信息,以通知您已收到消息,例如:
static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
Console.WriteLine("Message received.");
}
我在mvc中尝试了mqtt发布订阅代码,
我可以使用以下代码发布消息。
string MQTT_BROKER_ADDRESS = "212.72.74.21";
MqttClient client = new MqttClient(MQTT_BROKER_ADDRESS);
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
string strValue = "Message to be Send";
client.Publish("Topic", Encoding.UTF8.GetBytes(strValue));
消息发布。
但是来订阅消息的时候收不到
我使用了以下代码。
MqttClient client = new MqttClient("212.72.74.21");
client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
string clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
client.Subscribe(new string[] { "Message1" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
订阅的消息必须在下面的方法中处理。
static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
//Handle Message recieved
}
但我的问题是程序没有进入订阅函数。
我该如何解决?
请提供一些想法来纠正我的问题。
您使用的订阅主题与您要发布的主题不同。确保两个主题相同。
将以下行更改为:
client.Publish("myTopic", Encoding.UTF8.GetBytes(strValue));
并将以下行添加到:
client.Subscribe(new string[] { "myTopic" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
在您的委托中,打印出一些有用的信息,以通知您已收到消息,例如:
static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
Console.WriteLine("Message received.");
}