WordPress heartbeat API w praktyce

download WordPress heartbeat API w praktyce

of 22

  • date post

    08-Sep-2014
  • Category

    Technology

  • view

    109
  • download

    9

Embed Size (px)

description

WordUp Kraków 25.07.2014

Transcript of WordPress heartbeat API w praktyce

  • WP HEARTBEAT API W PRAKTYCE Maciej Kuchnik indelso.pl
  • HEARTBEAT API? Dwukierunkowa komunikacja przegldarka - serwer w czasie rzeczywistym ! W WordPress od wersji 3.6
  • JAKTO DZIAA? 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
  • HEARTBEAT JS wp.heartbeat.enqueue() wp.heartbeat.dequeue() wp.heartbeat.isQueued() wp.heartbeat.hasFocus() wp.heartbeat.disableSuspend() wp.heartbeat.interval()
  • HEARTBEAT JS EVENTS heartbeat-send heartbeat-tick heartbeat-error heartbeat-connection-lost heartbeat-connection-restored heartbeat-nonces-expired
  • HEARTBEAT PHP dla zalogowanych ltry heartbeat_received heartbeat_send akcja heartbeat_tick dla niezalogowanych ltry heartbeat_nopriv_received heartbeat_nopriv_send akcja heartbeat_nopriv_tick
  • 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
  • XHR if ( !empty($_POST['data']) ) apply_lters( 'heartbeat_received', $response, $data, $screen_id ); apply_lters( 'heartbeat_send', $response, $screen_id ); do_action( 'heartbeat_tick', $response, $screen_id ); $response['server_time'] = time(); wp_send_json($response);
  • 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); });
  • INTERWA wp.heartbeat.interval(speed, ticks); speed = fast / 5 ; 15 ; 30 ; 60 ; 'long-polling' ticks (domylnie 30) - tylko przy speed=5 - liczba requestw po ktrych speed wraca do normalnej wartoci apply_lters( 'heartbeat_settings', array() ) JS PHP
  • PRZYKAD
  • HEARTBEAT W WP-ADMIN
  • HEARTBEAT W WP-ADMIN
  • HEARTBEAT W WP-ADMIN
  • PRZYKAD NA FRONCIE
  • IMPLEMENTACJA
  • IMPLEMENTACJA
  • IMPLEMENTACJA
  • IMPLEMENTACJA
  • IMPLEMENTACJA
  • PYTANIA?
  • DZIKUJ! Maciej Kuchnik maciek@indelso.pl facebook.com/maciekkuchnik