WordPress heartbeat API w praktyce
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

WordPress heartbeat API w praktyce

on

  • 145 views

WordUp Kraków 25.07.2014

WordUp Kraków 25.07.2014

Statistics

Views

Total Views
145
Views on SlideShare
145
Embed Views
0

Actions

Likes
1
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

WordPress heartbeat API w praktyce Presentation Transcript

  • 1. WP HEARTBEAT API W PRAKTYCE Maciej Kuchnik indelso.pl
  • 2. HEARTBEAT API? Dwukierunkowa komunikacja przeglądarka - serwer w „czasie rzeczywistym” ! W WordPress od wersji 3.6
  • 3. JAKTO DZIAŁA? XHR (XMLHttpRequest) JS Event - heartbeat-send - heartbeat-tick - heartbeat-error - heartbeat-connection-lost - heartbeat-connection-restored - heartbeat-nonces-expired WP Filter - heartbeat_received - heartbeat_send - heartbeat_nopriv_received - heartbeat_nopriv_send WP Action - heartbeat_tick - heartbeat_nopriv_tick co X sekund
  • 4. HEARTBEAT JS • wp.heartbeat.enqueue() • wp.heartbeat.dequeue() • wp.heartbeat.isQueued() • wp.heartbeat.hasFocus() • wp.heartbeat.disableSuspend() • wp.heartbeat.interval()
  • 5. HEARTBEAT JS EVENTS • heartbeat-send • heartbeat-tick • heartbeat-error • heartbeat-connection-lost • heartbeat-connection-restored • heartbeat-nonces-expired
  • 6. HEARTBEAT PHP dla zalogowanych filtry • heartbeat_received • heartbeat_send akcja • heartbeat_tick dla niezalogowanych filtry • heartbeat_nopriv_received • heartbeat_nopriv_send akcja • heartbeat_nopriv_tick
  • 7. wp.heartbeat.enqueue(id1, data, overwrite); wp.heartbeat.enqueue(id2 data, overwrite); wp.heartbeat.enqueue(id3 data, overwrite); KOLEJKA id1 ! id2 ! id3 heartbeat-send XHR
  • 8. XHR if ( !empty($_POST['data']) ) apply_filters( 'heartbeat_received', $response, $data, $screen_id ); apply_filters( 'heartbeat_send', $response, $screen_id ); do_action( 'heartbeat_tick', $response, $screen_id ); $response['server_time'] = time(); wp_send_json($response);
  • 9. jQuery(document).on( 'heartbeat-tick.id2', function( e, data ) { //do something }); jQuery(document).on('heartbeat-error', function(e, jqXHR, textStatus, error) { console.log('ERROR'); console.log(textStatus); console.log(error); });
  • 10. INTERWAŁ wp.heartbeat.interval(speed, ticks); speed = ‚fast’ / 5 ; 15 ; 30 ; 60 ; 'long-polling' ticks (domyślnie 30) - tylko przy speed=5 - liczba requestów po których speed wraca do normalnej wartości apply_filters( 'heartbeat_settings', array() ) JS PHP
  • 11. PRZYKŁAD
  • 12. HEARTBEAT W WP-ADMIN
  • 13. HEARTBEAT W WP-ADMIN
  • 14. HEARTBEAT W WP-ADMIN
  • 15. PRZYKŁAD NA FRONCIE
  • 16. IMPLEMENTACJA
  • 17. IMPLEMENTACJA
  • 18. IMPLEMENTACJA
  • 19. IMPLEMENTACJA
  • 20. IMPLEMENTACJA
  • 21. PYTANIA?
  • 22. DZIĘKUJĘ! Maciej Kuchnik maciek@indelso.pl facebook.com/maciekkuchnik