Поделиться через


Создание нескольких сеансов для одного клиента

В этом руководстве вы узнаете, как установить несколько сеансов для одного клиента в пространстве имен Сетки событий.

Необходимые компоненты

Поддержка нескольких сеансов

Чтобы создать несколько сеансов для каждого клиента, укажите имя проверки подлинности клиента в свойстве имени пользователя пакета CONNECT. Затем можно указать идентификатор сеанса в свойстве Client Identifier (ClientID) пакета CONNECT.

  • Если свойство имени пользователя не указано в пакете CONNECT, невозможно создать несколько сеансов для клиента.
  • Поле ClientID не может быть пустым.
  • Идентификатор клиента должен быть уникальным для всех клиентов в пространстве имен.

Если клиент пытается взять на себя активный сеанс другого клиента, указав имя сеанса, запрос на подключение отклоняется с несанкционированной ошибкой. Например, если клиент B пытается подключиться к сеансу 123, назначенному клиенту A, запрос на подключение клиента B отклоняется.

Если клиент отключен без завершения сеанса, другие клиенты не могут использовать имя сеанса до истечения срока действия сеанса. Например, если клиент A создает сеанс с именем сеанса 123, то клиент A отключен, клиент B не может подключиться к сеансу 123 до истечения срока действия исходного сеанса.

Конфигурация CONNECT в пакете MQTT CONNECT включите имя проверки подлинности клиента в поле имени пользователя, которое обозначает удостоверение клиента. Ниже приведен пример метаданных клиента с именем проверки подлинности клиента "ipv4=127.0.0.1".

Screenshot showing the client configuration with client authentication name information highlighted.

Теперь при подключении клиента к пространству имен можно использовать поле идентификатора клиента в пакете MQTT CONNECT в качестве идентификатора сеанса.

Например, на основе конфигурации клиента можно отправить два пакета CONNECT со значениями полей из одного клиента:

Пример настройки подключения можно просмотреть с помощью приложения MQTTX.

Первый пакет подключения:

  • имя пользователя: "ipv4=127.0.0.1"
  • clientId: sessionId1

Screenshot showing the MQTTX application client configuration with first session.

Второй пакет подключения:

  • имя пользователя: "ipv4=127.0.0.1"
  • clientId: sessionId2

creenshot showing the MQTTX application client configuration with second session.

Для проверки подлинности обоих сеансов можно использовать одни и те же учетные данные сертификата клиента.