SMPP ou HTTP: qual conexão encaixa

Uma sessão SMPP persistente contra chamadas HTTP por requisição: taxa, recibos, callbacks e os modos de falha que decidem a escolha.

practitioner · 4 min de leitura

O SMPP mantém uma sessão persistente com uma janela de taxa por bind; o HTTP autentica cada requisição e recebe eventos em um callback. Os dois transportam as mesmas mensagens e informam os mesmos estados de entrega. Escolha pela forma do tráfego e pelas falhas que a sua equipe sabe operar.

Fatos-chave

  • O SMPP mantém uma sessão aberta e carrega uma janela de requisições em voo por bind.
  • O HTTP inicia uma requisição autenticada por envio e usa um callback para os recibos.
  • Os dois modelos devolvem os mesmos estados de entrega; o transporte muda como eles chegam.
  • As falhas diferem: janela de bind cheia no SMPP, callback lento no HTTP.

A decisão em um parágrafo

Comece com HTTP se o volume é baixo, o tráfego vai em rajadas e a equipe já opera endpoints web. Passe para SMPP quando o tráfego é um fluxo constante, quando a autenticação e o estabelecimento de conexão por requisição têm um custo visível, ou quando os recibos precisam chegar pela mesma sessão transceiver dos envios. Muitas plataformas usam os dois: SMPP para o fluxo de envio e HTTP para os callbacks de entrada.

O protocolo não é o produto. A rota, o registro do remetente e os testes em celulares decidem se a mensagem chega. SMPP e HTTP são duas formas de alcançar a mesma central de mensagens, e qualquer uma pode ser bem ou mal operada.

A pergunta certa não é qual protocolo é mais novo. É qual falha a sua equipe consegue ver e corrigir na velocidade que o tráfego produz. Um bind silencioso às duas da manhã e um callback falhando às duas da manhã são problemas operacionais. Escolha o que as suas ferramentas sabem diagnosticar.

O mesmo trabalho, dois formatos

As duas colunas transportam as mesmas mensagens. As linhas são as partes que mudam quando você troca de transporte.
ElementoSMPPHTTP
SessãoBind autenticado mantido abertoChave enviada em cada requisição
JanelaJanela fixa de requisições em voo por bindConcorrência definida pelo cliente e pelo pool
Recibo de entregaPDU deliver_sm em um bind transceiver (ou um receiver separado)Callback para o seu endpoint
Mensagem recebidadeliver_sm em um bind receiver ou transceiverCallback para o seu endpoint
RetentativaO cliente gerencia a janela e o backoffO cliente repete a requisição; o provedor repete o callback

A tabela descreve o transporte, não a implementação de um provedor. Confirme os detalhes no onboarding.

A taxa segue o formato

Um bind SMPP é provisionado com uma taxa e uma janela. Com a sessão aberta, um envio custa uma PDU e uma resposta, sem novo handshake. Isso torna o SMPP eficiente para um fluxo sustentado e previsível para planejar capacidade: conte os binds, leia a alocação e mantenha as requisições em voo abaixo da janela.

O HTTP paga autenticação e estabelecimento de conexão em cada requisição, embora a reutilização de conexões reduza o custo. A capacidade vem da concorrência, não de uma janela de bind, então o cliente pode disparar uma rajada e depois bater em um limite de taxa ou em uma fila. Essa flexibilidade combina com campanhas e aplicações de baixo volume; também torna o pico mais difícil de raciocinar se o cliente não limita a concorrência. Um limite de taxa e uma janela são controles diferentes: um limita requisições por segundo, o outro requisições em voo. O custo por requisição aparece em volume alto, não com alguns milhares de mensagens por dia.

Planejador de vazão e campanhas de SMS

Mude a taxa e a janela; o planejador roda no navegador.

Converta um volume de mensagens e um horário de envio na vazão necessária, ou uma vazão na duração da campanha.

tps
50
windowMin
60
Abrir a ferramenta

Recibos e entrada decidem a integração

O SMPP entrega recibos e mensagens recebidas por um bind receiver ou transceiver. O cliente precisa manter a sessão viva para recebê-los, parear cada recibo com o message ID guardado e responder com deliver_sm_resp. Não há um endpoint de callback para proteger, mas há uma sessão para monitorar: um bind aberto e silencioso é um modo de falha.

O HTTP entrega recibos e mensagens recebidas em uma URL. O receptor verifica a assinatura, responde rápido e processa o evento de forma assíncrona. Um callback lento é a falha comum: o provedor expira o tempo, repete, e o mesmo evento é processado duas vezes. Chaves de idempotência e uma confirmação rápida fazem parte da integração, não são uma otimização.

Seja qual for o caminho do recibo, guarde o payload original. A interpretação do provedor pode mudar, e um caso de suporte muitas vezes depende do estado ou do código de erro original. Guarde-o com o message ID, a rota e a hora.

Modos de falha para projetar

Cada linha é uma falha que aparece em produção, não um caso teórico.
FalhaComo apareceO que fazer
Janela de bind cheiaTimeouts e retentativas sobem juntos; a fila crescePare de repetir, deixe a janela esvaziar, adicione um bind
Sessão silenciosaO bind está aberto mas nenhuma resposta chegaEnvie enquire_link, expire a sessão, reconecte com backoff
Recibo mal pareadoOs estados vão para a mensagem erradaPareie por message ID, não por ordem de chegada
Callback lentoO provedor repete; aparecem duplicadosResponda rápido, processe depois, use uma chave de idempotência
Falta de idempotênciaUma retentativa de rede cria duas mensagensCarregue uma referência do cliente e deduplique por ela
Desvio de codificaçãoUma mensagem longa chega em pedaços ou com caracteres erradosDefina GSM-7 ou UCS-2 de propósito e teste a contagem de segmentos

As correções são operacionais. Nenhum transporte as elimina.

Escolher e integrar

Escolha SMPP quando o fluxo de envio é sustentado, o provedor aloca uma janela que você consegue dimensionar e a equipe sabe operar uma sessão: gestão de binds, keep-alive, reconexão e logs no nível de PDU. Escolha HTTP quando o volume é moderado, a equipe já opera endpoints web seguros e um callback encaixa na arquitetura. Escolha os dois quando o envio e a entrada têm donos diferentes.

Seja qual for a escolha, peça a mesma evidência: uma rota de teste, a alocação de taxa, o formato do recibo, a lista de códigos de erro e a política de retentativa. A explicação de SMPP cobre a sessão, e o guia de conexão cobre o caminho até produção.

Escreva a escolha com números: taxa de pico, janela por bind, timeout do callback e orçamento de retentativas. Uma decisão sem esses números é uma preferência. Revise quando o pico ou a equipe mudar.

Confira o que aprendeu

  1. Uma campanha roda a 40 mensagens por segundo de forma constante e os recibos precisam chegar pela mesma sessão transceiver. Qual transporte encaixa?

    SMPP com um bind transceiver, binds suficientes e uma janela dimensionada para a taxa. O HTTP pode levar o volume, mas os recibos chegam a um callback, não pela sessão SMPP.

  2. O endpoint de callback leva oito segundos para responder. O que dá errado?

    O provedor expira o tempo e repete, então o mesmo evento é entregue de novo. Responda rápido e processe depois da resposta.

  3. Por que um bind silencioso é mais difícil que um bind caído?

    Um bind caído falha de forma visível. Um bind silencioso parece aberto, então o cliente continua enviando até um timeout expor. O keep-alive encontra antes.

As respostas aparecem sob demanda. Nada é pontuado, armazenado ou enviado.

Perguntas frequentes

Podemos usar os dois?

Sim. Muitas plataformas enviam por SMPP e recebem callbacks por HTTP durante a migração.

Qual é mais rápido de integrar?

HTTP, normalmente em uma tarde; SMPP compensa quando o volume justifica uma sessão persistente.

Qual é mais confiável?

Nenhum é confiável sozinho. A confiabilidade vem da rota, da política de retentativa e das operações em volta.

O HTTP aguenta volume alto?

Sim, com concorrência, pool de conexões e callbacks assíncronos. O SMPP costuma ser mais eficiente para um fluxo sustentado, porque a sessão e o canal de recibos já estão abertos.

Precisamos de IP fixo?

Muitas vezes sim para SMPP, porque o provedor libera o IP do cliente. Integrações HTTP costumam usar TLS e uma chave. Confirme o requisito antes de construir.
  • Conectar por SMPP e HTTP

    Levar uma rota de teste à produção sem quebrar binds, janelas ou recibos: estado do bind, taxa, keep-alive, codificação, callbacks e falhas.

  • Manual global de Sender ID para A2P

    Como os Sender IDs funcionam nos mercados: caminhos alfanuméricos, numéricos e de código curto, expectativas de registro e exemplos de países.

  • A2P SMS

    SMS aplicação-pessoa: o tráfego que uma aplicação envia ao aparelho de uma pessoa, como um código de verificação ou um alerta de transação.

Coloque em prática

Informe o tráfego, o destino e a medição necessária; respondemos com o próximo passo.