Heartbeat: saiba o que é essa API e como usá-la no WordPress

Heartbeat é uma API que sincroniza as informações entre o painel WordPress e o servidor por meio do envio de dados contínuos. Dessa forma, a solução estabelece uma comunicação com o servidor, o que permite edições colaborativas e a visualização de atualizações de front-end quase em tempo real.

heartbeat

Precisando de conteúdo para sua empresa? Encontre os melhores escritores em WriterAccess!

O Heartbeat é uma API incorporada ao WordPress que permite que o navegador se comunique com o servidor para fazer atualizações de front-end quase em tempo real.

Em hospedagens compartilhadas ela também pode enviar um grande número de solicitações ao servidor, resultar em alta utilização da CPU e, conforme o usuário atinge o limite de sua cota, pode resultar na suspensão da conta, devido a alta taxa de uso do processador.

Como a solução salva as edições dos usuários em ambientes colaborativos, ela também pode travar a página e impedir qualquer alteração enquanto outra pessoa acessa a página. Neste artigo discutimos a funcionalidade do Heartbeat, veja a seguir:

Como a Heartbeat funciona?

Conforme o próprio nome indica, Heartbeat (batimento cardíaco) é uma API que envia pulsos contínuos — e gatilhos de eventos, ao servidor. O principal objetivo é sincronizar as informações entre o seu painel WordPress e o servidor.

Por exemplo, durante a criação de um post do editor, o usuário tem a opção de salvar automaticamente as alterações enquanto o trabalho é executado. Esse processo é realizado de forma periódica até o envio da publicação.

Mas em sistemas colaborativos, quando vários usuários acessam o mesmo conteúdo, uma função de travamento impede que um usuário salve as edições enquanto o outro trabalha.

Esse processo de exibição de alterações de front-end quase em tempo real, também permite que usuários com a API em seu CMS visualize as vendas realizadas em seu e-commerce praticamente no momento em que elas ocorrem. Veja o funcionamento da Heartbeat:

  1. quando uma página é carregada, o código de pulsação do usuário configura um intervalo (chamado de “tick”) para execução a cada 15-60 segundos;
  2. ao alcançar esse intervalo, o Heartbeat reúne dados para enviá-los ao servidor por meio de um evento jQuery e então aguarda uma resposta;
  3. no servidor, uma ferramenta admin-ajax pega os dados transmitidos, prepara uma resposta, filtra a resposta e retorna os dados no formato JSON;
  4. o usuário recebe esses dados e dispara um evento jQuery final para indicar que os dados foram recebidos.

Como usar essa API?

O procedimento básico para personalizar os eventos da Heartbeat consiste em:

  • incluir campos adicionais nos dados a serem enviados (evento JS heartbeat-send);
  • detectar os campos enviados no PHP e adicionar campos de resposta (filtro recebido por heartbeat_r);
  • processar dados retornados em JS (JS heartbeat-tick).

Logo, o uso da API requer dois processos: o envio de dados e o recebimento de retornos em JavaScript. O evento também exige que haja um filtro no servidor para processar dados passados em PHP. Veja as orientações de uso da API segundo o site WordPress.org a seguir.

Envio de dados para o servidor

Quando a Heartbeat envia dados para o servidor, o usuário pode incluir informações personalizadas ou um valor verdadeiro simples para indicar que a espera de uma resposta específica:

jQuery( document ).on( 'heartbeat-send', function ( event, data ) {
    // Add additional data to Heartbeat data.
    data.myplugin_customfield = 'some_data';
});

Detecção dos dados recebidos e adição de dados à resposta do servidor

// Add filter to receive hook, and specify we need 2 parameters.
add_filter( 'heartbeat_received', 'myplugin_receive_heartbeat', 10, 2 );
 
/**
 * Receive Heartbeat data and respond.
 *
 * Processes data received via a Heartbeat request, and returns additional data to pass back to the front end.
 *
 * @param array $response Heartbeat response data to pass back to front end.
 * @param array $data Data received from the front end (unslashed).
 */
function myplugin_receive_heartbeat( $response, $data ) {
    // If we didn't receive our data, don't send any back.
    if ( empty( $data['myplugin_customfield'] ) ) {
        return $response;
    }
 
    // Calculate our data and pass it back. For this example, we'll hash it.
    $received_data = $data['myplugin_customfield'];
 
    $response['myplugin_customfield_hashed'] = sha1( $received_data );
    return $response;
}

Recebimento dos dados de volta no front-end

jQuery( document ).on( 'heartbeat-tick', function ( event, data ) {
    // Check for our data, and use it.
    if ( ! data.myplugin_customfield_hashed ) {
        return;
    }
 
    alert( 'The hash is ' + data.myplugin_customfield_hashed );
});

Nem todos os recursos precisam executar as três etapas. Por exemplo, o usuário pode não precisar enviar dados para o servidor, o que exigirá que ele execute apenas as duas últimas etapas.

Como parar a API Heartbeat?

Sem a API Heartbeat todas as edições feitas em um documento de página podem ser perdidas na ocorrência de qualquer problema, a menos que o usuário se lembre de apertar o botão “Salvar Como Rascunho” constantemente.

Além disso, ao parar a API, o usuário não terá mais acesso aos recursos de revisões do WordPress e ao instalar plugins baseados na Heartbeat, não receberá as notificações em tempo real nem poderá consultar os recursos de informação do site.

A única indicação para parar a Heartbeat é quando o usuário não trabalha de forma colaborativa ou não precisa de informações sobre o site em tempo real.

Para controlar a frequência que a API Heartbeat envia os pulsos de dados para o servidor, basta instalar o plugin Heartbeat Control:

acesse as configurações do plugin em “Configurações” » “Heartbeat Control Settings” para definir o comportamento da API;

  • em “Heartbeat Behavior” o usuário pode habilitar, desabilitar e modificar a Heartbeat;
  • na seção “Locations” o usuário escolhe o ambiente que será controlado (Painel do WordPress, Frontend e Editor de Post);
  • já na opção “Frequency” é possível modificar a quantidade de chamados para o servidor. O plugin permite configurar uma variação de callbacks entre 15 e 300 segundos;
Heartbeat

(Fonte)

Para que o usuário consiga parar a API Heartbeat sem a instalação de um plugin, basta adicionar as linhas de código no arquivo functions.php do tema ativo:

  • clique em “Aparência” » “Editor de Temas”;
  • verifique qual o tema está ativo;
  • acesse “Funções do tema” no menu de navegação no lado direito do dashboard;
  • cole a linha de código depois da tag de abertura <?php:
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat()
{ wp_deregister_script('heartbeat');
}
  • clique em “Atualizar Arquivo”.
Heartbeat

(Fonte)

Se você utiliza um serviço de hospedagem com recursos limitados, pode considerar a instalação do Heartbeat Control para limitar o volume de pulsos para o servidor. Isso poderá aumentar consideravelmente o desempenho do seu site.

Mas se você trabalha de forma colaborativa, a Heartbeat é um recurso imprescindível para salvar as atualizações constantes do seu site.

Considere optar por uma hospedagem especializada, assim, você não precisará se preocupar com o uso de recursos muito menos com as alterações que interferem no desempenho da sua página. O Stage é uma plataforma de hospedagem altamente indicada para qualquer página WP na web.

Conheça também a Rest API e um conjunto de boas práticas utilizadas nas requisições HTTP para aplicações na web.

Compartilhe
facebook
linkedin
twitter
mail

CONTEÚDO CRIADO POR HUMANOS

Encontre os melhores freelancers de conteúdo no WriterAccess.

CONTEÚDO CRIADO POR HUMANOS

Encontre os melhores freelancers de conteúdo em WriterAccess.

Inscreva-se em nosso blog

Acesse, em primeira mão, nossos principais posts diretamente em seu email

Compre conteúdo de alta qualidade com a WriterAccess.

Tenha acesso a mais de 15.000 freelancers especializados em redação, edição, tradução, design e muito mais, prontos para serem contratados.

Fale com um especialista e amplie seus resultados de marketing.

A Rock Content oferece soluções para produção de conteúdo de alta qualidade, aumento do tráfego orgânico e conversões, e construção de experiências interativas que transformarão os resultados da sua empresa ou agência. Vamos conversar.