IMqttPublisherService.cs 958 Bytes

using System.Threading.Tasks;
using System.Collections.Generic;

namespace NCC.Extend.Interfaces.MqttPublisher
{
    public interface IMqttPublisherService
    {
        Task<bool> PublishAsync(string topic, string payload);
        Task StartAsync();

        /// <summary>
        /// 查询指定clientId是否在线(通过EMQX管理API)
        /// </summary>
        /// <param name="clientId"></param>
        /// <returns></returns>
        Task<dynamic> IsClientOnlineAsync(string clientId);

        /// <summary>
        /// 批量查询设备在线状态(提高效率)
        /// </summary>
        /// <param name="clientIds">要查询的客户端ID列表</param>
        /// <returns>在线状态字典</returns>
        Task<Dictionary<string, bool>> BatchCheckOnlineStatusAsync(List<string> clientIds);

        /// <summary>
        /// 清理过期的缓存数据
        /// </summary>
        void CleanupExpiredCache();
    }
}