API-ul Heartbeat schimbarea impulsului

În prima parte a acestei serii am analizat elementele de bază ale API-ului Heartbeat și modul în care poate fi implementat într-un plugin. În acest tutorial vom examina cum puteți schimba "pulsul" Heartbeat-ului.

Implicit, inima WordPress bate o data la 15 secunde. Puteți reduce această rată la orice până la un bate în fiecare minut. Alternativ, puteți mări temporar rata la un bate la fiecare 5 secunde - dar numai temporar timp de două minute și jumătate înainte de a fi resetat la ritmul "standard": "4 BPM".


Schimbați Impulsul implicit

Pentru a schimba impulsul implicit, puteți utiliza funcția wp_heartbeat_filter filtru care filtrează setările inițiale ale API-ului Heartbeat. Acest filtru are nu permiteți inițial să setați pulsul la "rapid": în schimb, puteți specifica numai un număr cuprins între 15 și 60 (interval între bate în secunde).

 funcția wptuts_heartbeat_settings (setări $) $ settings ['interval'] = 60; // Orice între 15-60 întoarce $ setările;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Dezactivați Auto-Start

Deși cererile sunt trimise doar la server când există date de trimis, Hearbeat începe să ruleze automat când pagina se încarcă. Puteți să dezactivați pornirea automată de la setările implicite Heartbeat:

 funcția wptuts_heartbeat_settings (setări $) $ settings ['autostart'] = false; returnează setările $;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Trecerea de la server la browser, Heartbeat va începe să ruleze numai dacă:

 wp.heartbeat.start ();

se numește. De asemenea, puteți dezactiva și clientul Heartbeat:

 wp.heartbeat.stop ();

Modificați Pulse Client-Side

Pe lângă activarea și dezactivarea funcției Heartbeat, puteți manipula ritmul impulsului (de exemplu) ca răspuns la anumite evenimente declanșate de utilizator. De exemplu, puteți asculta atunci când utilizatorul pornește o activitate care necesită o comunicare mai obișnuită cu serverul - și deci măriți temporar rata.

Din cadrul scriptului dvs. JavaScript:

 // 1 bate fiecare 5 secunde pentru maximum două minute și jumătate wp.heartbeat.interval ("rapid"); // 1 bate la fiecare 60 de secunde wp.heartbeat.interval ('lent'); // 1 bate la fiecare 15 secunde wp.heartbeat.interval ('standard');
Avertizare: Deși "rapid" durează doar două minute și jumătate, dacă setați continuu pulsul la "rapid", atunci, în realitate, acesta rulează permanent la acea rată. Ar trebui să fiți atenți la modul în care schimbați pulsul și faceți acest lucru numai atunci când trebuie să faceți acest lucru.

Schimbați serverul de tip Pulse

Pe lângă schimbarea paginii de browser cu impulsuri, putem face acest lucru de fiecare dată când browserul comunică cu serverul. Acest lucru se face prin setarea "hEARTBEAT_INTERVAL"în răspuns - poate fi unul dintre"rapid","încet"sau"standard'.

 funcția wptuts_respond_to_browser ($ response, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin'])) // Plug-in de date trimise în răspunsul browserului $ ['wptuts-plugin'] = array ("salut" => "lumea"); // Slow hearbeat $ răspuns ['heartbeat_interval'] = 'lent';  retur $ răspuns;  add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Au inregistrat utilizatori add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Au fost deconectați utilizatorii

Inactivitatea utilizatorului

API-ul Heartbeat ajustează, de asemenea, ritmul în funcție de activitatea utilizatorului. WordPress verifică activitatea utilizatorului la fiecare 30 de secunde, dacă după 5 minute nu a fost activată nici o tastatură sau mouse, bataia este redusă la un bate la fiecare sute de secunde. Acest lucru se face indiferent de ce a fost setat de către un plugin.

În ultima parte a acestei serii vom crea un exemplu simplu de lucru al unui plugin utilizând noul API Heartbeat. Vom crea un plugin care oferă actualizări live ale utilizatorilor atunci când utilizatorii se conectează și ies din WordPress.

Cod