MqttService.cs 941 B

12345678910111213141516171819202122232425262728
  1. using MQTTnet.Protocol;
  2. using MQTTnet.Server;
  3. using MQTTnet;
  4. using System.Text;
  5. namespace HTEX.Complex.Services.MQTT
  6. {
  7. public class MqttService
  8. {
  9. public static MqttServer _mqttServer { get; set; }
  10. public static void PublishData(string data)
  11. {
  12. var message = new MqttApplicationMessage
  13. {
  14. Topic = "topic_01",
  15. Payload = Encoding.Default.GetBytes(data),
  16. QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce,
  17. Retain = true // 服务端是否保留消息。true为保留,如果有新的订阅者连接,就会立马收到该消息。
  18. };
  19. _mqttServer.InjectApplicationMessage(new InjectedMqttApplicationMessage(message) // 发送消息给有订阅 topic_01的客户端
  20. {
  21. SenderClientId = "Server_01"
  22. }).GetAwaiter().GetResult();
  23. }
  24. }
  25. }