O Message Push Service (MPS) encaminha notificações push por diferentes sistemas de backend, conforme a plataforma do dispositivo de destino. Este tópico descreve como o MPS gerencia o registro de dispositivos, a vinculação de usuários e a entrega de mensagens para dispositivos Android na China continental, dispositivos iOS e dispositivos Android fora da China.
O MPS usa o mPaaS Mobile Gateway Service para invocar o gateway de Remote Procedure Call (RPC) responsável pelo registro de dispositivos, pela vinculação de usuários e pela vinculação de canais de terceiros. O fluxo de envio se divide posteriormente de acordo com a plataforma.
Conceitos básicos
-
Device ID (token): Identificador exclusivo que o MPS atribui a cada dispositivo cliente e usa para direcionar a entrega de mensagens.
Dispositivos Android usam uma conexão persistente para o envio de mensagens.
Dispositivos iOS usam o Apple Push Notification service (APNs) para o envio de mensagens.
-
Modo de envio: O MPS oferece suporte a três modos de envio:
Envio específico por Device ID
Envio específico por User ID
-
Envio por broadcast sem especificar identificadores
NotaOs três modos são resolvidos internamente como Device IDs. O envio específico por User ID simplifica a integração com seus sistemas de negócios: os User IDs são mapeados internamente para Device IDs. Portanto, vincule os User IDs aos Device IDs antes de enviar mensagens direcionadas a usuários. Vincule o User ID ao Device ID no login e remova a vinculação no logout.
-
Envio por terceiros: Envio via canal do fabricante que garante alta taxa de entrega. Durante a inicialização do SDK, a chamada ao método
initsolicita Device IDs tanto do mPaaS quanto da plataforma de terceiros. Ambos os IDs são retornados via callback.Para ativar o envio por terceiros, chame a API
reportpara carregar o Device ID do mPaaS e o Device ID de terceiros no Mobile Push Core, vinculando os dois IDs. Sem essa etapa, o envio retorna ao canal padrão do mPaaS.
Processo
O MPS usa dois componentes de backend:
Mobile Push Core (Pushcore): Processa a lógica de serviço e expõe APIs para o seu servidor.
Mobile Push Gateway (Mcometgw): Mantém conexões persistentes com dispositivos Android.
Para dispositivos configurados com uma plataforma de envio de terceiros, como Xiaomi ou Huawei, o cliente também solicita um Device ID desse fabricante. O canal do fabricante só é ativado após a chamada à API report para vincular o Device ID do mPaaS ao Device ID de terceiros. Dispositivos sem configuração de canal de fabricante usam apenas o Device ID do mPaaS.
Selecione o fluxo correspondente à sua plataforma de destino:
Dispositivos Android na China continental
Para dispositivos Android na China continental, o MPS usa um gateway próprio (Mcometgw). O cliente se comunica diretamente com o Mobile Push Core (Pushcore) via RPC pelo gateway RPC.

O fluxo ocorre da seguinte forma:
Ao iniciar o aplicativo, o cliente estabelece uma conexão persistente com o Mcometgw. Caso a solicitação de conexão não inclua um Device ID, o Mcometgw gera um novo identificador.
Se o dispositivo estiver configurado para um canal de fabricante (Xiaomi, Huawei ou similar), o SDK do fabricante é inicializado, estabelece uma conexão persistente com o gateway de envio do fabricante e obtém um Device ID específico do fabricante.
O aplicativo chama a API RPC de relatório de dispositivo e reporta as informações do dispositivo de terceiros.
O usuário faz login no aplicativo no cliente.
Seu servidor recebe a solicitação de login e, após autenticação bem-sucedida, pode enviar uma solicitação de vinculação entre usuário e dispositivo ao Pushcore.
Seu servidor envia uma solicitação de envio ao Pushcore.
-
O Pushcore recebe a solicitação de envio e a roteia conforme o modo de envio:
No envio específico por Device ID, o Pushcore chama o Mcometgw diretamente para entregar a mensagem.
No envio específico por User ID, o Pushcore resolve o Device ID a partir do User ID na solicitação e chama o Mcometgw para entregar a mensagem.
O Mcometgw entrega a mensagem ao cliente.
O cliente envia um comprovante de entrega ao Mcometgw confirmando o recebimento. Se você configurou uma API de callback, o Pushcore encaminha o comprovante de entrega ao seu servidor.
Quando o usuário faz logout, o cliente chama a API RPC de desvinculação para remover a associação entre usuário e dispositivo.
Dispositivos iOS e dispositivos Android fora da China
Para dispositivos iOS, o gateway de envio é o APNs. Para dispositivos Android fora da China, o gateway de envio é o Firebase Cloud Messaging (FCM). O fluxo abaixo usa o iOS como exemplo; o fluxo para Android fora da China segue o mesmo padrão, substituindo o APNs pelo FCM.
O cliente se comunica com o Mobile Push Core (Pushcore) via RPC pelo gateway RPC.

O fluxo ocorre da seguinte forma:
O cliente obtém o Device ID do dispositivo iOS.
O cliente chama a API RPC de relatório de dispositivo para carregar o Device ID no Pushcore pelo gateway RPC.
O usuário faz login no aplicativo no cliente.
Após login bem-sucedido, o cliente chama a API RPC de vinculação para enviar uma solicitação de vinculação entre usuário e dispositivo ao Pushcore pelo gateway RPC.
Seu servidor envia uma solicitação de envio ao Pushcore.
-
O Pushcore recebe a solicitação de envio e a roteia conforme o modo de envio:
No envio específico por Device ID, o Pushcore chama o APNs diretamente para entregar a mensagem.
No envio específico por User ID, o Pushcore resolve o Device ID a partir do User ID na solicitação e chama o APNs para entregar a mensagem.
O cliente envia um comprovante de entrega ao Pushcore confirmando o recebimento. Se você configurou uma API de callback, o Pushcore encaminha o comprovante de entrega ao seu servidor.