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".

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 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"

Screenshot showing the MQTTX application client configuration with first session.

Segundo pacote de conexão:

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

creenshot showing the MQTTX application client configuration with second session.

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