Partilhar via


Como estabelecer várias sessões para um único cliente

Neste guia, você aprenderá a estabelecer várias sessões para um único cliente para um namespace de 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, você pode fornecer a ID da sessão na propriedade Client Identifier (ClientID) 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.
  • ClientID precisa ser exclusivo em todos os clientes em um namespace

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

Se um cliente for desconectado sem encerrar sua sessão, outros clientes não poderão usar o nome da sessão até que a sessão expire. Por exemplo, se o cliente A criar uma sessão com o nome de sessão 123, o cliente A será desconectado, o cliente B não poderá se conectar à sessão 123 até que a sessão original expire.

Configuração CONNECT No pacote MQTT CONNECT, inclua o nome de autenticação do cliente no campo Nome de usuário, que significa a identidade do cliente. Aqui está um exemplo de metadados do cliente com o nome de autenticação do cliente "ipv4=127.0.0.1".

Captura de tela mostrando a configuração do cliente com as informações de nome de autenticação do cliente realçadas.

Agora, ao conectar o cliente ao namespace, você pode usar o campo de identificador do cliente no pacote MQTT CONNECT como identificador de 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ê pode ver um exemplo de configuração de conexão usando o aplicativo MQTTX.

Primeiro pacote de conexão:

  • nome de usuário: "ipv4=127.0.0.1"
  • clientId: "sessionId1"

Captura de tela mostrando a configuração do cliente do aplicativo MQTTX com a primeira sessão.

Segundo pacote de conexão:

  • nome de usuário: "ipv4=127.0.0.1"
  • clientId: "sessionId2"

Captura de tela mostrando a configuração do cliente do aplicativo MQTTX com a segunda sessão.

Você pode usar as mesmas credenciais de certificado de cliente para autenticar ambas as sessões.