API Detak Jantung: Mengubah Denyut Jantung
() translation by (you can also view the original English article)
Pada bagian pertama dari seri ini kita melihat dasar-dasar API Detak Jantung, dan bagaimana itu dapat diimplementasikan dalam sebuah plugin. Dalam tutorial ini kita akan melihat bagaimana Anda dapat mengubah "denyut nadi" Detak Jantung.
Secara default jantung WordPress berdetak sekali setiap 15 detik. Anda dapat menurunkan nilai itu menjadi apa pun hingga satu ketukan setiap menit. Sebagai alternatif, Anda dapat meningkatkan sementara tarif menjadi satu ketukan setiap 5 detik – tetapi hanya untuk sementara selama dua setengah menit sebelum diatur ulang ke ketukan 'standar': "4 BPM".
Ubah Default Pulse
Untuk mengubah default pulse, Anda dapat menggunakan filter wp_heartbeat_filter
yang menyaring pengaturan awal API Detak Jantung. Filter ini awalnya tidak memungkinkan Anda menyetel pulse ke 'cepat': Anda hanya dapat menentukan angka antara 15 dan 60 (interval antara ketukan dalam hitungan detik).
1 |
|
2 |
function wptuts_heartbeat_settings( $settings ) { |
3 |
$settings['interval'] = 60; //Anything between 15-60 |
4 |
return $settings; |
5 |
}
|
6 |
add_filter( 'heartbeat_settings', 'wptuts_heartbeat_settings' ); |
Matikan Auto-Start
Meskipun permintaan hanya dikirim ke server ketika ada data untuk dikirim, Detak Jantung mulai berjalan secara otomatis saat halaman dimuat. Anda dapat mematikan secara otomatis dari pengaturan Detak Jantung default:
1 |
|
2 |
function wptuts_heartbeat_settings( $settings ) { |
3 |
$settings['autostart'] = false; |
4 |
return $settings; |
5 |
}
|
6 |
add_filter( 'heartbeat_settings', 'wptuts_heartbeat_settings' ); |
Beralih dari sisi server ke browser, Heartbeat hanya akan mulai berjalan jika:
1 |
|
2 |
wp.heartbeat.start(); |
disebut. Anda juga dapat mematikan sisi klien Detak Jantung:
1 |
|
2 |
wp.heartbeat.stop(); |
Ubah Pulse Client-Side
Selain menghidupkan dan mematikan Detak Jantung, Anda dapat memanipulasi denyut nadi (misalnya) sebagai respons terhadap peristiwa tertentu yang dipicu oleh pengguna. Misalnya, Anda dapat mendengarkan ketika pengguna memulai suatu kegiatan yang membutuhkan komunikasi lebih teratur dengan server – dan dengan demikian meningkatkan sementara waktu.
Dari dalam skrip JavaScript Anda:
1 |
|
2 |
// 1 beat every 5 seconds for a maximum of two and half minutes
|
3 |
wp.heartbeat.interval( 'fast' ); |
4 |
|
5 |
// 1 beat every 60 seconds
|
6 |
wp.heartbeat.interval( 'slow' ); |
7 |
|
8 |
// 1 beat every 15 seconds
|
9 |
wp.heartbeat.interval( 'standard' ); |
Ubah Pulse Server-Side
Selain mengubah sisi pulsa browser, kita juga bisa melakukan ini setiap kali browser berkomunikasi dengan server. Ini dilakukan dengan menetapkan 'heartbeat_interval
' di respons – itu bisa berupa 'fast
', 'slow
' atau 'standard
'.
1 |
|
2 |
function wptuts_respond_to_browser( $response, $data, $screen_id ) { |
3 |
if ( isset( $data['wptuts-plugin'] ) ) { |
4 |
// Plug-in data being sent to browser
|
5 |
$response['wptuts-plugin'] = array( |
6 |
'hello' => 'world' |
7 |
);
|
8 |
|
9 |
// Slow the hearbeat
|
10 |
$response['heartbeat_interval'] = 'slow'; |
11 |
}
|
12 |
return $response; |
13 |
}
|
14 |
add_filter( 'heartbeat_received', 'wptuts_respond_to_browser', 10, 3 ); // Logged in users |
15 |
add_filter( 'heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3 ); // Logged out users |
Ketidakaktifan Pengguna
API Detak Jantung juga menyesuaikan ketukan sesuai dengan aktivitas pengguna. WordPress memeriksa aktivitas pengguna setiap 30 detik, jika setelah 5 menit, tidak ada aktivitas keyboard atau mouse, ketukan dikurangi menjadi satu ketukan setiap seratus detik. Ini dilakukan terlepas dari apa yang telah diatur oleh plugin.
Pada bagian akhir dari seri ini kita akan membuat contoh kerja sederhana dari sebuah plugin menggunakan API Detak Jantung yang baru. Kita akan membuat plugin yang memberikan pembaruan 'langsung' pengguna saat pengguna masuk dan keluar dari WordPress.