Share via


Como estabelecer várias sessões para um só cliente

Neste guia, você aprenderá a estabelecer várias sessões para um só cliente em um namespace da Grade de Eventos.

Pré-requisitos

Suporte a várias sessões

Para criar várias sessões por cliente, forneça o nome de autenticação do cliente na propriedade Username do pacote CONNECT. Em seguida, forneça a ID da sessão na propriedade ClientID (Identificador de Cliente) do pacote CONNECT.

  • Se a propriedade Username não for fornecida no pacote CONNECT, você não poderá criar várias sessões para o cliente.
  • O campo ClientID não pode estar vazio.
  • A ClientID precisa ser exclusiva em todos os clientes de um namespace

Se um cliente tentar assumir a sessão ativa de outro cliente apresentando o respectivo nome de sessão, a solicitação de conexão dele será rejeitada com o erro Não autorizado. Por exemplo, se o cliente B tentar se conectar à sessão 123 atribuída nesse momento ao cliente A, a solicitação de conexão do cliente B será rejeitada.

Se um cliente estiver desconectado sem encerrar a sessão, os outros clientes só poderão usar o nome da sessão quando ela expirar. Por exemplo, se o cliente A criar uma sessão com o nome da sessão 123, o cliente A será desconectado e o cliente B só poderá se conectar à sessão 123 quando a sessão original expirar.

A configuração de CONNECT No pacote CONNECT do MQTT, inclua o nome de autenticação do cliente no campo Username, que indica a identidade do cliente. Veja um exemplo de metadados do cliente com o nome de autenticação do cliente “ipv4=127.0.0.1”.

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

Agora, ao conectar o cliente ao namespace, você pode usar o campo de identificador do cliente no pacote CONNECT do MQTT como o identificador da sessão.

Por exemplo, com base na configuração do cliente, você pode enviar dois pacotes CONNECT com valores de campo do mesmo cliente:

Você poderá ver um exemplo de configuração de conexão usando o aplicativo MQTTX.

Primeiro pacote de conexão:

  • username: “ipv4=127.0.0.1”
  • clientId: “sessionId1”

Screenshot showing the MQTTX application client configuration with first session.

Segundo pacote de conexão:

  • username: “ipv4=127.0.0.1”
  • clientId: “sessionId2”

creenshot showing the MQTTX application client configuration with second session.

Use as mesmas credenciais de certificado do cliente para autenticar as duas sessões.