IMqttClientService.cs
1.14 KB
using MQTTnet.Protocol;
namespace Rcs.Application.Shared
{
public interface IMqttClientService
{
Task PublishAsync(string topic, string payload, MqttQualityOfServiceLevel qos = MqttQualityOfServiceLevel.AtMostOnce, bool retain = false, CancellationToken ct = default);
Task PublishInstantActionsAsync(string protocolName, string protocolVersion,string RobotManufacturer, string RobotSerialNumber, string payload, MqttQualityOfServiceLevel qos = MqttQualityOfServiceLevel.AtMostOnce, bool retain = false, CancellationToken ct = default);
Task PublishOrderAsync(string protocolName, string protocolVersion, string RobotManufacturer, string RobotSerialNumber, string payload, MqttQualityOfServiceLevel qos = MqttQualityOfServiceLevel.AtMostOnce, bool retain = false, CancellationToken ct = default);
Task AddOrUpdateSubscriptionsAsync(IEnumerable<(string topic, MqttQualityOfServiceLevel qos)> subscriptions, CancellationToken ct = default);
Task RemoveSubscriptionAsync(string topic, CancellationToken ct = default);
IReadOnlyCollection<(string topic, MqttQualityOfServiceLevel qos)> GetSubscriptions();
}
}