この記事の例では、WebSocket に基づいて PHP で単純なチャット ルームを構築する実践について説明します。皆さんの参考に共有してください。詳細は以下の通りです
1. はじめに
会社のゲームに簡易チャットルームがあることを知り、node+websocketで作られていることに気づき、PHPを使って簡易チャットルームを作ってみようと思いました。そこで、さまざまな情報を収集し、ドキュメントを読み、事例を探し、簡単なチャット ルームを自分で書きました。
http 接続は、短い接続と長い接続に分けられます。短い接続は通常、ajax を使用して実装でき、長い接続は WebSocket です。短い接続は実装が比較的簡単ですが、消費するリソースが多すぎます。 Websocket は効率的ですが、互換性に関していくつかの問題があります。 websocketはhtml5のリソースです
2. フロントエンド
フロントエンドでの WebSocket の実装は非常にシンプルで簡単です
3.舞台裏
WebSocket の難しさは主にバックグラウンドにあります
3.1WebSocket接続プロセス
Websocket 通信図 これは、クライアントとサーバー間の単純な通信図です。PHP が行う主な処理は、暗号化キーを受け取り、それを返してソケットの作成とハンドシェイク操作を完了することです。
- 接続を待機しているソケットプロセスをハングします
- ソケット接続が確立された後、ソケット配列を走査します
- ハンドシェイクがない場合は、ハンドシェイク操作を実行します。ハンドシェイクがある場合は、データが解析されて出力用のバッファに書き込まれます。
-
以下はサンプルコードです(私がクラスを書いたので、コードは関数に従って分割されています)。テキストの最後には、githubアドレスと私が遭遇したいくつかの落とし穴が示されています。
1. まずソケットを作成します
リーリー
リーリー
リーリー
5. クライアントデータを解析します (ここでは暗号化していません。必要に応じて自分で暗号化できます)
6. ソケットをバッファに書き込みます
7.操作方法
①server.phpはコンソールで実行するのがベストです
server.php スクリプト ディレクトリに移動します (最初に php -v を実行して、php が設定されているかどうかを確認できます。Linux 設定がない場合は、bash ウィンドウでパスを設定します)
php -f サーバー.php
エラーがある場合はプロンプトが表示されます
②サーバー経由でHTMLファイルにアクセス
①server.phpは、中断されたプロセスで出力を印刷できます。問題がある場合は、コードに印刷を追加してデバッグできます
各判断をマークして、コードがどのセクションで実行されているかをコンソールで確認できます
ただし、コードを変更するたびにスクリプト php server.php を再実行する必要があります
②このエラーが発生する場合は
の可能性があります1. サーバーとのソケットの初期化時にデータを送信します (サーバーとの最初の検証ハンドシェイク中にコンテンツは送信できません)
2. この状況は、検証されたがクライアントが送信しなかった場合、または送信されたメッセージが空だった場合にも発生します
接続されているソケットのデータを確認してください
③ブラウザがサポートしていないか、サーバーがソケットを開いていない可能性がありますので、開始する前に確認することをお勧めします。
リーリー

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









