アカウントにログインできるのは 1 人だけであることを実現する
#この記事の動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューターphp メソッド: 1. セッション情報を redis に保存する; 2. session_id を mysql データベースに保存する; 3. ログイン時に、ユーザーを確認した後、名前とパスワード、データベースからユーザー情報を読み取り、ユーザーの session_id を取得し、セッションの有効期限が切れているかどうかを確認します; 4. 有効期限が切れていない場合は、openfire を使用してメッセージをプッシュします; 5. 新しい session_id をデータベースに更新します。
php は、たった 1 人でできることを認識しています。同じアカウントを同時に使用する ログイン
この問題は以前にも検討し、今日実装しましたが、非常に高速で、研究から開発まで4時間近くかかります。これは QQ に似ています。2 台のコンピュータでログインすると、1 台のコンピュータがもう 1 台を締め出し、他の場所からのログイン情報の入力を求められます。 1. 実装原理1. ユーザーはコンピューター A にログインし、セッション情報は redis に保存され、session_id は mysql データベースに保存されます。 2. 同じユーザーがコンピューター B にログインします。ユーザー名とパスワードを確認した後、データベースからユーザー情報を読み取り、コンピューター A にログインしているユーザーの session_id を取得し、 Redis でセッションが期限切れになりました。 3. 有効期限が切れた場合、openfire はプロンプト情報をプッシュする必要はありません。有効期限が切れていない場合は、PHP が openfire を使用してメッセージをプッシュした後、ユーザーがコンピューター A にログインしている Redis のセッションを削除します。削除後、コンピューター B にログインしているユーザーの個人情報をセッションに追加し、コンピュータ B でセッションにログインしているユーザーの個人情報を削除し、ユーザーがコンピュータ B にログインしているセッションを削除します。session_id がデータベースに更新されます。ここでは、最初にプッシュを送信する必要があり、その後セッションがクリアされます。それ以外の場合は、セッションがクリアされます。の場合、コンピュータ A のユーザーは、xmpp によって送信されたメッセージを受信しません。 注: Openfire は Java cms の一種です。独自のデータベースがあります。作成するユーザー テーブルは、openfire に付属するユーザー テーブル (たとえば、情報のプッシュを容易にするため、携帯電話番号、電子メールなど)。 同じセッション ID が同じメディアにログインしている必要があります。現時点では、データベースを更新してメッセージをプッシュする必要はありません。以下は、インストール プロセスの簡単な説明です。そして注意すべきこと。 2. 使用するツールをインストールします# yum install php php-fpm nginx mysql mysql-server redis php-redis php-devel php-pdo php-mysql
# vim /etc/php-fpm.d/www.conf ;php_value[session.save_handler] = files //注释掉旧的 ;php_value[session.save_path] = /var/lib/php/session php_value[session.save_handler] = redis //添加以下内容 php_value[session.save_path] = "tcp://127.0.0.1:6379"
#redis Telnet に正常に保存され、セッションが表示されることを説明しています
openfire ダウンロード アドレス: http://www.igniterealtime.org /downloads/
View copy and print?
# rpm -ivh ./*.rpm //下载的是rpm安装包
openfire が開始されたら、http://ip:9090 にアクセスして、段階的に設定します。データベースのエンコーディング。
[推奨学習: 「
PHP ビデオ チュートリアル以上が1つのアカウントに1人だけがログインできるようにPHPで実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。