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
- Você tem um namespace Event Grid criado. Consulte este Guia de início rápido - Publicar e assinar em um tópico MQTT para criar o namespace, subrecursos e publicar/assinar um tópico .
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".
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"
Segundo pacote de conexão:
- nome de usuário: "ipv4=127.0.0.1"
- clientId: "sessionId2"
Você pode usar as mesmas credenciais de certificado de cliente para autenticar ambas as sessões.