En la primera parte de esta serie analizamos los conceptos básicos de la API de Heartbeat y cómo se puede implementar en un complemento. En este tutorial veremos cómo puedes cambiar el "pulso" de Heartbeat.
Por defecto, el corazón de WordPress late una vez cada 15 segundos. Usted puede bajar esa tasa a cualquier latido por minuto. Alternativamente, puede aumentar temporalmente la frecuencia a un tiempo cada 5 segundos, pero solo temporalmente durante dos minutos y medio antes de que se restablezca el tiempo "estándar": "4 BPM".
Para cambiar el pulso por defecto puedes usar el wp_heartbeat_filter
Filtro que filtra la configuración inicial de la API de Heartbeat. Este filtro hace no le permite establecer inicialmente el pulso a 'rápido': en cambio, solo puede especificar un número entre 15 y 60 (intervalo entre tiempos en segundos).
función wptuts_heartbeat_settings ($ settings) $ settings ['interval'] = 60; // Cualquier cosa entre 15-60 return $ settings; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
Aunque las solicitudes solo se envían al servidor cuando hay datos para enviar, Hearbeat comienza a ejecutarse automáticamente cuando se carga la página. Puede desactivar el inicio automático desde la configuración predeterminada de Heartbeat:
función wptuts_heartbeat_settings ($ settings) $ settings ['autostart'] = false; devuelve $ settings; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
Al pasar del servidor al navegador, Heartbeat solo comenzará a ejecutarse si:
wp.heartbeat.start ();
se llama. También puede desactivar Heartbeat del lado del cliente también:
wp.heartbeat.stop ();
Además de activar y desactivar Heartbeat, puede manipular el ritmo del pulso (por ejemplo) en respuesta a ciertos eventos desencadenados por el usuario. Por ejemplo, puede escuchar cuando el usuario inicia una actividad que requiere una comunicación más regular con el servidor y, por lo tanto, aumente la tasa temporalmente..
Desde dentro de su script de JavaScript:
// 1 vez cada 5 segundos durante un máximo de dos minutos y medio wp.heartbeat.interval ('fast'); // 1 tiempo cada 60 segundos wp.heartbeat.interval ('lento'); // 1 tiempo cada 15 segundos wp.heartbeat.interval ('standard');Advertencia: Aunque 'rápido' solo dura dos minutos y medio, si está configurando continuamente el pulso a 'rápido', entonces, en efecto, se ejecuta permanentemente a esa velocidad. Debe tener cuidado con la forma en que cambia el pulso y hacerlo solo cuando necesite hacerlo..
Además de cambiar el lado del navegador de pulsos, también podemos hacerlo cada vez que el navegador se comunique con el servidor. Esto se hace estableciendo 'heartbeat_interval
'en la respuesta - puede ser uno de'rápido
','lento
'o'estándar
'.
función wptuts_respond_to_browser ($ response, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin'])) // Los datos del complemento se envían al navegador $ response ['wptuts-plugin'] = matriz ('hola' => 'mundo'); // Reduce el ritmo de la respuesta de $ [[heartbeat_interval '] =' slow '; devolver $ respuesta; add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Usuarios registrados: add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Usuarios desconectados
La API de Heartbeat también ajusta el ritmo de acuerdo con la actividad de un usuario. WordPress verifica la actividad del usuario cada 30 segundos, si después de 5 minutos no ha habido actividad de teclado o mouse, el tiempo se reduce a un tiempo cada cien segundos. Esto se hace independientemente de lo que haya sido configurado por un complemento.
En la parte final de esta serie, crearemos un ejemplo simple y funcional de un complemento que utiliza la nueva API de Heartbeat. Crearemos un complemento que ofrece a los usuarios actualizaciones en vivo cuando los usuarios inician y cierran sesión en WordPress..