O Cloud SDK for Java do ApsaraMQ for MQTT fornece três interfaces de API para integração do lado do servidor: sendMessage para publicar mensagens, subscribeTopic para consumir mensagens e subscribeStatus para rastrear eventos de conexão do cliente.
Pré-requisitos
Antes de começar, certifique-se de ter:
Crie uma instância do ApsaraMQ for MQTT no console do ApsaraMQ for MQTT
Um par de AccessKey para autenticação. Para mais detalhes, consulte Obter um par de AccessKey
O Cloud SDK for Java baixado e adicionado ao seu projeto. Para obter os links de baixe, consulte Notas de versão
Parâmetros de conexão
Configure os parâmetros de conexão em ChannelConfig.class, localizado em server-sdk-{SDK Version}\com\alibaba\mqtt\server\config. Substitua {SDK Version} pela versão do Cloud SDK for Java no seu projeto.
Parâmetros obrigatórios
|
Parâmetro |
Tipo |
Descrição |
|
|
String |
Endpoint da sua instância do ApsaraMQ for MQTT. Consulte Formatos de endpoint. |
|
|
Integer |
Porta usada pelo Cloud SDK. Defina como |
|
|
String |
ID da sua instância do ApsaraMQ for MQTT. Localize-o na seção Basic Information da página Instance Details no console do ApsaraMQ for MQTT. |
|
|
String |
AccessKey ID criado no console do Resource Access Management (RAM). Consulte Obter um par de AccessKey. |
|
|
String |
AccessKey secret criado no console do RAM. Necessário apenas para autenticação por assinatura. Consulte Obter um par de AccessKey. |
Formatos de endpoint
Escolha o formato do endpoint com base no seu método de acesso à rede:
|
Método de acesso |
Formato do endpoint |
|
Público |
|
|
VPC |
|
|
VPC dedicada |
|
Substitua <instance-id> pelo ID da sua instância do ApsaraMQ for MQTT, listado na seção Basic Information da página Instance Details no console do ApsaraMQ for MQTT.
Nota: O endpoint de VPC dedicada fica disponível apenas após a criação de um ponto de acesso de rede para a sua instância.
Importante: Nem todas as regiões oferecem suporte ao acesso via Cloud SDK. Para as regiões compatíveis, consulte Regiões de acesso do SDK. Se você criou um ponto de acesso dedicado para a sua instância, use o endpoint de VPC dedicada para acessá-la.
Parâmetros de rede
Os valores padrão funcionam para a maioria dos casos. Ajuste esses parâmetros apenas se as condições de rede assim o exigirem.
|
Parâmetro |
Tipo |
Descrição |
Unidade |
Padrão |
|
|
Integer |
Tempo antes da recuperação automática de uma conexão TCP. |
Milissegundos |
5000 |
|
|
Integer |
Tempo máximo de espera para estabelecer uma conexão TCP. Se a conexão não for estabelecida nesse período, o sistema retornará um erro. |
Milissegundos |
60000 |
|
|
Integer |
Tempo máximo de espera para um handshake TCP. Se o handshake não for concluído nesse período, o sistema retornará um erro. |
Milissegundos |
10000 |
|
|
Integer |
Intervalo entre sinais de heartbeat. Se nenhum heartbeat for enviado nesse intervalo, o sistema retornará um erro. |
Segundos |
60 |
|
|
Integer |
Período de carência para o consumidor terminar de processar mensagens após o fechamento da conexão TCP. Defina como |
Milissegundos |
10000 |
sendMessage
Publique uma mensagem em um tópico MQTT.
Classe:
com.alibaba.mqtt.server.ServerProducer
|
Parâmetro |
Tipo |
Descrição |
|
|
String |
Tópico MQTT de destino da publicação. Especifique um tópico pai ou um subtópico. Crie os tópicos pai no console do ApsaraMQ for MQTT primeiro. Especifique os subtópicos diretamente no código, sem a necessidade de criá-los no console. Para detalhes sobre a hierarquia de tópicos, consulte Termos básicos. |
|
|
byte[] |
Corpo da mensagem. |
|
|
SendCallback |
Callback invocado após o envio da mensagem. Trate o resultado do envio neste callback. |
Importante: Se o tópico especificado não existir ou se o cliente não tiver permissões nele, a autenticação falhará e o broker do ApsaraMQ for MQTT encerrará a conexão do cliente.
subscribeTopic
Inscreva-se para receber mensagens de um tópico pai.
Classe:
com.alibaba.mqtt.server.ServerConsumer
|
Parâmetro |
Tipo |
Descrição |
|
|
String |
Tópico pai criado no console do ApsaraMQ for MQTT. Para mais detalhes, consulte Termos básicos. |
|
|
MessageListener |
Callback invocado quando uma mensagem chega. Processe as mensagens recebidas neste callback. |
Importante: Se o tópico especificado não existir ou se o cliente não tiver permissões nele, a autenticação falhará e o broker do ApsaraMQ for MQTT encerrará a conexão do cliente.
O Cloud SDK não oferece suporte a inscrições em subtópicos. Seu design é voltado para aplicações de backend que coletam e analisam todas as mensagens de um tópico pai.
subscribeStatus
Inscreva-se para receber notificações de status do cliente de um grupo específico.
Classe:
com.alibaba.mqtt.server.ServerConsumer
|
Parâmetro |
Tipo |
Descrição |
|
|
String |
Group ID criado no console do ApsaraMQ for MQTT. Para mais detalhes, consulte Termos básicos. |
|
|
StatusListener |
Callback invocado quando uma notificação de status do cliente chega. Processe os eventos de status neste callback. |
Tópicos relacionados
Termos básicos -- Hierarquia de tópicos, grupos e outros conceitos fundamentais
Notas de versão -- Versões do SDK e links para baixe
Regiões de acesso do SDK -- Regiões que oferecem suporte ao acesso via Cloud SDK