É necessário criar um número de eixos de tópicos do MQTT para um número x de dispositivos?


9

Atualmente no meu projeto no qual o controlador (cliente) envia dados do sensor para o servidor e recebe feedback do servidor com alguns dados adicionais, usa o protocolo MQTT para comunicação. Possui 2 tópicos separados para cliente e servidor.

Por exemplo:

Tópico1 - Cliente (ASSINATURAS), Servidor (PUBLISHES)
Tópico2 - Cliente (PUBLISHES), Servidor (ASSINATURAS)

Mas se esse projeto for um caso de uso de um aplicativo maior, digamos que cerca de 5.000 dispositivos precisem ser instalados em algum lugar.

Então, será necessário criar 5000 tópicos diferentes para o cliente e o servidor? Ou com tópicos menores, isso pode ser feito e como?


11
Por que você acha que é um problema ter muitos tópicos?
hardillb

11
Provavelmente porque o software teria que gerenciar todos eles.
Mawg diz que restabelece Monica em 27/09/18

11
@hardillb Não é um problema ... apenas estava curioso ... mas um tópico do MQTT pode ter um subtópico?
precisa saber é o seguinte

2
Claro, os tópicos são hierárquicos, portanto, qualquer esquema pode ser planejado. O Sparkplug s3.amazonaws.com/cirrus-link-com/… possui alguns tópicos por nó de extremidade e dispositivo atrás do nó de borda.
Suporte Gambit

ter um olhar para este shiftr.io/shiftr-io/demo
jsotola

Respostas:


5

Do cliente para o servidor, você pode incluir a identificação do cliente na carga, por exemplo, se for JSON, uma das chaves pode ter o valor da identificação do cliente.

A resposta do servidor para o cliente deve conter o ID do cliente para intermediar para não transmitir a mensagem, mas enviá-la diretamente para um cliente conectado.

Ao mesmo tempo, você pode inscrever seu servidor em algo como: "orders / +" e cada cliente publicará em "request / {client-id-1}", "request / {client-id-2}" e server receberá os dois com apenas uma assinatura.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.