ホームページ >バックエンド開発 >PHPチュートリアル >ユーザーがオンラインかどうかを判断する問題について! ! !

ユーザーがオンラインかどうかを判断する問題について! ! !

WBOY
WBOYオリジナル
2016-06-23 14:22:041637ブラウズ

ユーザーがオンラインであるかどうかを判断する方法について聞いたことがあるのですが、まったく理解できませんでした。今日は皆さんに助けを求めたいと思います。 !ありがとう! !


ディスカッションに返信 (解決策)

セッションをデータベースに記録し、ユーザーの ID 番号をマークします。ユーザーがオンラインであるかどうかは、ID 番号に対応するセッション情報の有効期限が切れているかどうかによって決まります。私の言ったことが正しいかどうかはわかりません。階下のマスターの皆さん、アドバイスをお願いします。

セッションの使用法を見てみましょう。理解できるでしょう

これは主に最後のアクティビティ時間を決定し、この時間内にアクティビティ記録がない場合はオンラインではないと見なされます。オンラインとみなされます。

まず、ユーザーが通常のチャネルを通過するとき、クリックして終了します。この場合、ユーザーがオンラインかどうかについてはこれ以上説明する必要はありません。私が聞きたいのは、ユーザーがクリックして終了せずにブラウザを直接閉じた場合、そのユーザーがまだオンラインであるかどうかをどのように確認すればよいでしょうか?

もう一度ご意見をお聞かせください、O(∩_∩)Oありがとうございます

セッションをデータベースに記録し、ユーザーの ID 番号をマークすることで、ユーザーがオンラインであるかどうかを判断することができます。このID番号は有効期限が切れています。私の言ったことが正しいかどうかは分かりません。階下のマスターの皆さん、アドバイスをお願いします。

下の補足をご覧ください

セッションの使い方がわかります

下の補足をご覧ください

保存方法も同じではないでしょうか?

保存方法次第ではないでしょうか?

重要なのは時間設定の問題です

1. ユーザーがオンラインであるかどうかを判断する必要があるのはなぜですか?
ユーザーはオンラインではないため、あなたにリクエストを送信しません。
オンラインの人数を表示する必要がある場合を除く
2. ユーザーがオンラインかどうかはいつ判断しますか?
オンラインの人数を表示する必要がある場合、当然のことながら、少なくとも 1 人のユーザーがリクエストを行っています
リクエストに応じてのみオンラインの人数を数えるだけです
誰もあなたの Web サイトにアクセスしない場合、カウントする意味はありませんか?
3. ユーザーがオンラインかどうかを確認するにはどうすればよいですか?
登録ユーザーに関係なく、有効なセッションの数を数えるだけです
デフォルトのセッション有効期限の 1440 秒が長すぎると思われる場合は、必要に応じて調整できます

では、ユーザーが何かを持っているかどうかをどのように判断しますか活動について?時々サーバーにリクエストしますか?では、このリクエストをすべてのページに追加する必要はないでしょうか? 。 。

このロジックはリクエストではなく、このようなものです。各ページでユーザーがオンラインかどうかを判断する必要があるからです。各ページはセッション情報を読み取り、読み取り時に今回を更新します。

オンラインの友達を知る必要があるかもしれませんが、期間も必要です

1. Ajax は期間を設定し、オンラインであることを証明するためにサーバーに送信します。それを超えると、オンラインではなくなります。

2. 期間とユーザーを設定する ページにアクセスしていない、リクエストを送信している、セッションを切断している、同時にオフライン状態を知る

つまり、ユーザーがオンラインであるかどうかをすぐに知ることは不可能です、それは合理的な期間が必要です

これは、単純なセッションの場合、ログイン情報を記録する方法によって異なります。ユーザー情報に対応するセッションが存在するか、期限切れになったかを判断するだけで済みます。ほぼ同じです。とにかく、それが有効かどうかの判断の問題です。

皆さんの回答を読んで、少しは理解できましたが、まだ理解できません。なぜなら、私がやっているのは、ユーザーがオンラインであるかどうかを判断し、オンラインでない場合は自動的にログアウトすることだからです。

それでは、見てみましょう。これについてどう思いますか? ?


では、ユーザーがアクティブかどうかをどのように判断するのでしょうか?時々サーバーにリクエストしますか?では、このリクエストをすべてのページに追加する必要はないでしょうか? 。 。

このロジックはリクエストではなく、このようなものです。各ページでユーザーがオンラインかどうかを判断する必要があるからです。各ページはセッション情報を読み取り、読み取り時に今回を更新します。

階下を見てください

オンラインの友達を知る必要があるかもしれませんが、期間も必要です

1. Ajax は期間を設定し、オンラインであることを証明するためにサーバーに送信します。それを超えると、オンラインではなくなります。

2. 期間を設定すると、ユーザーはページにアクセスせず、リクエストを送信し、セッションを切断し、同時にオフライン状態を知ることができます

つまり、ユーザーがオンラインかどうかをすぐに知ることは不可能です相当な時間がかかるはずです

ajax を使用した非同期リクエストの場合、その段落を追加する必要があります コードは各ページに追加されますか?

ユーザーがページにアクセスしたかどうかを確認する期間を設定するにはどうすればよいですか?予期しなかった。 。 。 。

それから私が言ったことを見てください、ありがとう

ユーザーの最終アクセス時刻を記録します
ユーザーの最終アクセス時刻と現在の時刻の間の間隔を確認します。それが合意された範囲を超えている場合、オフラインとみなされます

かどうかを判断します。ユーザー A はオンラインです ユーザー B のアクティビティ中に作業が実行されます
判定はサーバー側で独立して実行され、クライアントとは何の関係もありません

メモリテーブルを使用してユーザーの最終操作時刻を更新することができますCron を使用してユーザーのクリーニング操作を定期的に実行し、テーブルに最近オンラインになったユーザーが含まれるようにします。

ブラウザを閉じるイベントも使用できます。

1階のコレクションは非常に詳細だと思います

そうですね、皆さんの返信を読んだ後、効果を確認するためにもう一度試してみますO(∩_∩)O ha!時間が限られているので、全員に返信する時間がありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。