Mit WordPress 3.6 wird es eine neue API geben – Heartbeat. Am Ticket 23216 im Trac sammeln sich alle Diskussionen und Hinweise. Da Heartbeat aber auch Einflüsse für Anwender haben kann, hier einige Worte und Hinweise. Heartbeat wird eingeführt um diverse Aktivitäten, wie Autosave, Sperren von Artikeln und An- und Abmelde-Benachrichtigungen zu händeln. Parallel kann die API auch für eigene Entwicklungen genutzt werden.
Am Puls
Im Standard wird Heartbeat mit einem Puls von 15 Sekunden schlagen – Arbeit die der Prozessor tun muss und so kann es sinnvoll sein, diesen Wert zu ändern. Dabei kann nicht beliebig geändert werden. Der Pulsschlag von Heartbeat muss zwischen 5 und 60 Sekunden liegen. Folgendes kleines Plugin ändert auf den maximalen Wert von 60s.
Die Heartbeat API hat vielleicht im ersten Blick nicht die großen Vorteile, schauen wir aber auf ein einfaches Beispiel. Deine Installation hat zehn verschieden Plugins, die einen Poll auf den Server brauchen. Dann finden diese Hits getrennt statt, 10 mal. Wenn die Plugins die Heartbeat API verwenden, dann werden die Polls gebündelt, ein Hit für 10 Polls, alle 15 Sekunden im Standard.
<?php
/**
* Plugin Name: Set Heartbeat pulse
*/
! defined( 'ABSPATH' ) and exit;
add_filter( 'heartbeat_settings', 'fb_heartbeat_settings' );
function fb_heartbeat_settings( $settings = array() ) {
$settings['interval'] = 60;
return $settings;
}
Parallel kann man Heartbeat auch still legen, den Puls abklemmen, was das folgenden kleine Plugin tut.
<?php
/**
* Plugin Name: Remove Heartbeat pulse
*/
! defined( 'ABSPATH' ) and exit;
remove_action( 'admin_init', 'wp_auth_check_load' );
Debugging
Im Core von WordPress wurde die API so implementiert, dass die Console Infos ausspucken kann. Dazu muss der Parameter wp.heartbeat.debug
auf TRUE
gesetzt werden und schon kann das JavaScript infos geben.
if ( typeof console !== 'undefined' ) {
// Show debug info
wp.heartbeat.debug = true;
}
Entwicklung
Ein einfaches Beispiel liegt dem Trac bei, wo das Dashboard Widget für Kommentare am Pulsschlag aktualsiet wird – man kann also alle 15s einen Refresh der Zahlen erleben, insofern neue Kommentare eintreffen. Das Beispiel zeigt die wichtigsten Hooks und Funktionen und daher hier auch keine weitere Erklärung.