nodejsサーバーを使用してオンラインユーザーを表示していますが、ユーザーがリンクをクリックしたりページを更新したりしても、切断された機能がアクティブになります。ユーザーがタブを閉じた場合にのみサーバーにメッセージを送信することで、これをバイパスしようとしています/window に次のコードを追加します。
var socket = io.connect('http://example.com:8000');
socket.emit('started', { username: "TestUser", });
var clicked = false;
$(document).ready(function() {
$("a[href]").click(function() {
clicked = true;
});
$(document).bind('keypress keydown keyup', function(e) {
if(e.which === 116) {
clicked = true;
}
if(e.which === 82 && e.ctrlKey) {
clicked = true;
}
});
});
window.onbeforeunload = function(e){
if(!clicked) {
socket.emit('userDisconnected', { user: "TestUser" });
}
};
これは、ユーザーがリンクをクリックした場合、およびユーザーが F5 を押した場合にも機能しますが、ブラウザの更新ボタンをクリックしたかどうかを検出するにはどうすればよいですか
基本的に、ユーザーが自分のウェブサイトを離れたときにのみ userDisconnected メッセージを送信したい
ありがとう