Tôi nghĩ rằng nhịp đập được tự nhiên so le , vì dấu tích tiếp theo được xác định bởi thời gian trình duyệt time()
trong scheduleNextTick()
phương thức trong /wp-includes/js/heartbeat.js
tệp:
var delta = time() - settings.lastTick,
interval = settings.mainInterval;
nơi nó được sử dụng để lên lịch đánh dấu tiếp theo với setTimeout
chức năng:
if ( delta < interval ) {
settings.beatTimer = window.setTimeout(
function() {
connect();
},
interval - delta
);
} else {
connect();
}
Thời gian trình duyệt được xác định là:
function time() {
return (new Date()).getTime();
}
Các connect()
phương pháp bao gồm các cuộc gọi ajax và cách sử dụngalways()
.always( function() {
settings.connecting = false;
scheduleNextTick();
})
để lên lịch đánh dấu tiếp theo.
Các khoảng thời gian đánh dấu có sẵn là 5s, 15, 30 và 60.
Đối với một số lượng lớn người dùng rất tích cực, với khoảng thời gian đánh dấu ngắn, nhịp đập dường như xảy ra đồng thời.
Luôn có một số dữ liệu tốt, vì vậy bạn có thể đăng nhập các dấu tick từ người dùng đã đăng nhập, bằng heartbeat_tick
hook:
add_action( 'heartbeat_tick',
function( $response, $screen_id )
{
$file = WP_CONTENT_DIR . '/ticks.log'; // Edit this filepath to your needs.
if( file_exists( $file ) && is_writeable( $file ) )
{
file_put_contents(
$file,
sprintf( "%s - Tick from user_id : %d - from screen_id : %s" . PHP_EOL,
date( 'c' ),
get_current_user_id(),
$screen_id
),
FILE_APPEND | LOCK_EX
);
}
}
, 11, 2 );
Đây là một ví dụ từ ticks.log
tệp:
2014-09-01T12:41:04+00:00 - Tick from user_id : 1 - from screen_id : edit-post
2014-09-01T12:41:19+00:00 - Tick from user_id : 1 - from screen_id : edit-post
2014-09-01T12:41:34+00:00 - Tick from user_id : 1 - from screen_id : edit-post
2014-09-01T12:41:56+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:42:11+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:42:20+00:00 - Tick from user_id : 3 - from screen_id : upload
2014-09-01T12:42:38+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:43:05+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:43:08+00:00 - Tick from user_id : 3 - from screen_id : attachment
2014-09-01T12:43:20+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:43:36+00:00 - Tick from user_id : 1 - from screen_id : post
2014-09-01T12:44:17+00:00 - Tick from user_id : 3 - from screen_id : profile