Interface IMqttSessionManager

  • All Known Implementing Classes:
    InMemoryMqttSessionManager

    public interface IMqttSessionManager
    session 管理,不封装 MqttSession 实体,方便 redis 等集群处理
    Author:
    L.cm
    • Method Detail

      • addSubscribe

        void addSubscribe​(String topicFilter,
                          String clientId,
                          int mqttQoS)
        添加订阅存储
        Parameters:
        topicFilter - topicFilter
        clientId - 客户端 Id
        mqttQoS - MqttQoS
      • removeSubscribe

        void removeSubscribe​(String topicFilter,
                             String clientId)
        删除订阅
        Parameters:
        topicFilter - topicFilter
        clientId - 客户端 Id
      • searchSubscribe

        Integer searchSubscribe​(String topicName,
                                String clientId)
        查找订阅 qos 信息
        Parameters:
        topicName - topicName
        clientId - 客户端 Id
        Returns:
        订阅存储列表
      • searchSubscribe

        List<br.com.anteros.mqtt.core.server.model.Subscribe> searchSubscribe​(String topicName)
        查找订阅信息
        Parameters:
        topicName - topicName
        Returns:
        订阅存储列表
      • addPendingPublish

        void addPendingPublish​(String clientId,
                               int messageId,
                               MqttPendingPublish pendingPublish)
        添加发布过程存储
        Parameters:
        clientId - clientId
        messageId - messageId
        pendingPublish - MqttPendingPublish
      • getPendingPublish

        MqttPendingPublish getPendingPublish​(String clientId,
                                             int messageId)
        获取发布过程存储
        Parameters:
        clientId - clientId
        messageId - messageId
        Returns:
        MqttPendingPublish
      • removePendingPublish

        void removePendingPublish​(String clientId,
                                  int messageId)
        删除发布过程中的存储
        Parameters:
        clientId - clientId
        messageId - messageId
      • addPendingQos2Publish

        void addPendingQos2Publish​(String clientId,
                                   int messageId,
                                   MqttPendingQos2Publish pendingQos2Publish)
        添加发布过程存储
        Parameters:
        clientId - clientId
        messageId - messageId
        pendingQos2Publish - MqttPendingQos2Publish
      • getPendingQos2Publish

        MqttPendingQos2Publish getPendingQos2Publish​(String clientId,
                                                     int messageId)
        获取发布过程存储
        Parameters:
        clientId - clientId
        messageId - messageId
        Returns:
        MqttPendingQos2Publish
      • removePendingQos2Publish

        void removePendingQos2Publish​(String clientId,
                                      int messageId)
        删除发布过程中的存储
        Parameters:
        clientId - clientId
        messageId - messageId
      • getMessageId

        int getMessageId​(String clientId)
        生成消息 Id
        Parameters:
        clientId - clientId
        Returns:
        messageId
      • hasSession

        boolean hasSession​(String clientId)
        判断是否存在 session
        Parameters:
        clientId - clientId
        Returns:
        是否存在 session
      • expire

        boolean expire​(String clientId,
                       int sessionExpirySeconds)
        标记 session 超时时间
        Parameters:
        clientId - clientId
        sessionExpirySeconds - sessionExpirySeconds
        Returns:
        是否成功
      • active

        boolean active​(String clientId)
        激活 session,标记 expire 的 session 为永久
        Parameters:
        clientId - clientId
        Returns:
        是否成功
      • remove

        void remove​(String clientId)
        清除 session
        Parameters:
        clientId - clientId
      • clean

        void clean()
        清理