Heartbeat API Ändra puls

I den första delen av denna serie tittade vi på grunderna i Heartbeat API, och hur det kan implementeras i ett plugin. I denna handledning tittar vi på hur du kan ändra pulsen i Heartbeat.

Som standard slår WordPress-hjärtan en gång var 15: e sekund. Du kan sänka den hastigheten till allt till ett slag varje minut. Alternativt kan du tillfälligt höja hastigheten till ett slag varje 5 sekund - men bara tillfälligt i två och ett halvt minuter innan det återställs till "standard" -slaget: "4 BPM".


Ändra standardpuls

För att ändra standardpuls kan du använda wp_heartbeat_filter filter som filtrerar de ursprungliga inställningarna för Heartbeat API. Detta filter gör inte tillåta att du initialt ställer in pulsen till "snabb": i stället kan du bara ange ett tal mellan 15 och 60 (intervall mellan slag i sekunder).

 funktion wptuts_heartbeat_settings ($ inställningar) $ settings ['interval'] = 60; // Något mellan 15-60 returnerar $ inställningar;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Stäng av automatisk start

Även om förfrågningar bara skickas till servern när det finns data att skicka, börjar Hearbeat att köra automatiskt när sidan laddas. Du kan aktivera automatisk start från standardinställningarna för hjärtinfarkt:

 funktion wptuts_heartbeat_settings ($ inställningar) $ settings ['autostart'] = false; returnera $ inställningar;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Omkoppling från server-sida till webbläsaren börjar Heartbeat bara starta om:

 wp.heartbeat.start ();

kallas. Du kan också stänga av Heartbeat-klientsidan:

 wp.heartbeat.stop ();

Ändra Pulse Client-Side

Förutom att slå Heartbeat på och av, kan du manipulera pulsens slag (till exempel) som svar på vissa händelser som utlöses av användaren. Du kan till exempel lyssna på när användaren startar en aktivitet som kräver mer regelbunden kommunikation med servern - och så ökar tempot temporärt.

Från ditt JavaScript-skript:

 // 1 slag varje 5 sekunder i högst två och halv minut wp.heartbeat.interval ('fast'); // 1 slag varje 60 sekunder wp.heartbeat.interval ('slow'); // 1 slå var 15: e sekund wp.heartbeat.interval ('standard');
Varning: Även om "snabb" bara varar i två och ett halvt minut, om du kontinuerligt ställer in pulsen till "snabb", så går den i själva verket permanent i denna takt. Du bör vara försiktig med hur du byter puls och gör det bara när du behöver göra det.

Ändra pulsserver-sidan

Förutom att ändra pulswebbläsarsidan kan vi också göra det varje gång webbläsaren kommunicerar med servern. Detta görs genom att ställa in "heartbeat_interval"i svaret - det kan vara en av"snabb','långsam"eller"standard-'.

 funktionen wptuts_respond_to_browser ($ svar, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin'])) // Plug-in data skickas till webbläsaren $ response ['wptuts-plugin'] = array ("hej" => "värld"); // Slow hearbeat $ response ['heartbeat_interval'] = 'slow';  returnera $ svar  add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Inloggade användare add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Logga ut användare

Användaraktivitet

Heartbeat API anpassar även takten enligt användarens aktivitet. WordPress kontrollerar användaraktiviteten var 30: e sekund, om efter 5 minuter ingen tangentbord eller musaktivitet är, reduceras beat till ett slag varje hundra sekunder. Detta görs oavsett vad det kan ha fastställts av ett plugin.

I den sista delen av denna serie skapar vi ett enkelt fungerande exempel på ett plugin med det nya Heartbeat API. Vi skapar ett plugin som ger användarnas levande uppdateringar när användare loggar in och ut ur WordPress.