Создание нескольких сеансов для одного клиента
В этом руководстве вы узнаете, как установить несколько сеансов для одного клиента в пространстве имен Сетки событий.
Необходимые компоненты
- Вы создали пространство имен Сетки событий. Ознакомьтесь с этим кратким руководством. Публикация и подписка на раздел MQTT для создания пространства имен, подресурсов и публикации и подписки на раздел.
Поддержка нескольких сеансов
Чтобы создать несколько сеансов для каждого клиента, укажите имя проверки подлинности клиента в свойстве имени пользователя пакета CONNECT. Затем можно указать идентификатор сеанса в свойстве Client Identifier (ClientID) пакета CONNECT.
- Если свойство имени пользователя не указано в пакете CONNECT, невозможно создать несколько сеансов для клиента.
- Поле ClientID не может быть пустым.
- Идентификатор клиента должен быть уникальным для всех клиентов в пространстве имен.
Если клиент пытается взять на себя активный сеанс другого клиента, указав имя сеанса, запрос на подключение отклоняется с несанкционированной ошибкой. Например, если клиент B пытается подключиться к сеансу 123, назначенному клиенту A, запрос на подключение клиента B отклоняется.
Если клиент отключен без завершения сеанса, другие клиенты не могут использовать имя сеанса до истечения срока действия сеанса. Например, если клиент A создает сеанс с именем сеанса 123, то клиент A отключен, клиент B не может подключиться к сеансу 123 до истечения срока действия исходного сеанса.
Конфигурация CONNECT в пакете MQTT CONNECT включите имя проверки подлинности клиента в поле имени пользователя, которое обозначает удостоверение клиента. Ниже приведен пример метаданных клиента с именем проверки подлинности клиента "ipv4=127.0.0.1".
Теперь при подключении клиента к пространству имен можно использовать поле идентификатора клиента в пакете MQTT CONNECT в качестве идентификатора сеанса.
Например, на основе конфигурации клиента можно отправить два пакета CONNECT со значениями полей из одного клиента:
Пример настройки подключения можно просмотреть с помощью приложения MQTTX.
Первый пакет подключения:
- имя пользователя: "ipv4=127.0.0.1"
- clientId: sessionId1
Второй пакет подключения:
- имя пользователя: "ipv4=127.0.0.1"
- clientId: sessionId2
Для проверки подлинности обоих сеансов можно использовать одни и те же учетные данные сертификата клиента.