そのため、オンライン プレーヤーをリアルタイムで表示しようとしていますが、これまでのところ、1 つの問題を除いてうまく機能しています。私のアプリが切断をリッスンすると、ページの更新によってこの機能がトリガーされ、プレーヤーがログアウトされたように見えます。
app.io.route("disconnect", function(req,res) {
db.query("UPDATE player_data SET online=0 WHERE id="+mysql.escape(req.session.user));
req.io.broadcast("event", {msg:req.session.username+" has logged out!"});
app.io.broadcast("reloadXY");
req.session.destroy();
});
ページの更新によってこの関数がトリガーされるのはなぜですか? (プレイヤーがログアウトする他の唯一の方法はログアウト リンクを介することであるため、この機能であることはわかっています) ページの更新を無視し、ブラウザを閉じるなどの切断のみをキャッチするにはどうすればよいですか?
編集:ページがリロードされたか閉じられたかを確認できるように、再接続イベントを「ping」するにはどうすればよいですか? リロードするとすぐに再接続されるので、その再接続を確認するだけです。方法がわかりません!