ホームページ  >  記事  >  PHPフレームワーク  >  Workerman と HTML5 WebSocket テクノロジーを使用したリアルタイム オンライン チャット

Workerman と HTML5 WebSocket テクノロジーを使用したリアルタイム オンライン チャット

WBOY
WBOYオリジナル
2023-09-09 11:00:411008ブラウズ

利用workerman和HTML5 WebSocket技术实现实时在线聊天

Workerman と HTML5 WebSocket テクノロジーを使用してリアルタイムのオンライン チャットを実現

はじめに:
インターネットの急速な発展とスマートフォンの普及により、 -time オンライン チャットは人々の日常生活に不可欠な部分になっています。ユーザーのニーズを満たすために、Web 開発者はより効率的でリアルタイムのチャット ソリューションを常に探しています。この記事では、PHP フレームワーク Workerman と HTML5 WebSocket テクノロジーを組み合わせて、シンプルなリアルタイム オンライン チャット システムを実装する方法を紹介します。

1. Workerman の概要:
Workerman は、高性能 TCP/UDP リアルタイム通信アプリケーションを実装できる、PHP 開発者向けの高性能非同期 IO フレームワークです。従来の PHP 開発方法と比較して、Workerman は同時実行機能が高く、リソース消費が少ないため、リアルタイムのオンライン チャット システムの実装に非常に適しています。

2. HTML5 WebSocket の概要:
WebSocket は、TCP プロトコルに基づく全二重通信プロトコルで、クライアントとサーバーの間に永続的な接続を確立して、リアルタイムのデータ送信を実現できます。 HTML5 に新しく追加された WebSocket テクノロジーは、リアルタイム チャットやその他のリアルタイム データ送信において非常に重要な応用価値を持っています。

3. 環境の準備:

  1. サーバーのオペレーティング システム: linux
  2. PHP バージョン: 7.0 以降
  3. Workerman のインストール:

    $ composer require workerman/workerman

4. サーバー側の実装:

  1. chat.php ファイルを作成し、サーバー側のコードを記述します:

    <?php 
    require_once __DIR__.'/vendor/autoload.php'; // 加载Workerman的自动加载文件
    
    use WorkermanWorker;
    
    // 创建一个Worker监听2346端口,使用WebSocket协议通讯
    $ws_worker = new Worker("websocket://0.0.0.0:2346");
    
    $ws_worker->count = 4; // 设置进程数
    
    // 客户端与服务器建立连接时触发
    $ws_worker->onConnect = function($connection){
     echo "Connection established: " . $connection->id . "
    ";
    };
    
    // 客户端向服务器发送消息时触发
    $ws_worker->onMessage = function($connection, $data){
     echo "Received message: " . $data . "
    ";
    
     // 向所有在线用户发送消息
     foreach($connection->worker->connections as $clientConnection){
         $clientConnection->send($data);
     }
    };
    
    // 客户端断开连接时触发
    $ws_worker->onClose = function($connection){
     echo "Connection closed: " . $connection->id . "
    ";
    };
    
    Worker::runAll();
  2. WebSocket サービスの開始:

    $ php chat.php start

5. クライアント実装:

  1. chat.html ファイルを作成し、クライアント コード:

    <!DOCTYPE html>
    <html>
    <head>
     <title>实时在线聊天</title>
     <script>
         var ws = new WebSocket("ws://localhost:2346");
    
         ws.onopen = function(event){
             console.log("Connected to WebSocket server.");
         };
    
         ws.onmessage = function(event){
             var message = event.data;
             console.log("Received message: " + message);
             
             // 在页面上显示接收到的消息
             var messageBox = document.getElementById("message-box");
             var newMessage = document.createElement("p");
             newMessage.innerText = message;
             messageBox.appendChild(newMessage);
         };
    
         function sendMessage(){
             var message = document.getElementById("message-input").value;
             ws.send(message);
             document.getElementById("message-input").value = "";
         }
     </script>
    </head>
    <body>
     <div id="message-box"></div>
     <input id="message-input" type="text" placeholder="输入消息">
     <button onclick="sendMessage()">发送</button>
    </body>
    </html>
  2. ブラウザを使用して chat.html ファイルを開いて、リアルタイム オンライン チャットを開始します。

6. 概要:
この記事では、Workerman と HTML5 WebSocket テクノロジを使用してリアルタイムのオンライン チャットを実現する方法を紹介します。高性能な Workerman フレームワークと WebSocket の双方向通信機能を利用することで、シンプルなオンライン チャット システムを簡単に実装できます。チャット システムに加えて、WebSocket テクノロジを使用して、リアルタイム ゲーム、リアルタイム株価など、よりリアルタイムなコミュニケーション アプリケーションを実装することもできます。この記事がリアルタイム オンライン チャット システムの開発に役立ち、より多くのアイデアやアプリケーションを生み出すことを願っています。

参考:

  1. Workerman 公式ドキュメント: https://www.workerman.net/doc
  2. HTML5 WebSocket チュートリアル: https://www.runoob 。 com/html/html5-websocket.html

以上がWorkerman と HTML5 WebSocket テクノロジーを使用したリアルタイム オンライン チャットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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