労働者育成の実践: 効率的なインスタント メッセージング システムの構築
労働者育成の実践: 効率的なインスタント メッセージング システムの構築
はじめに:
インターネットの急速な発展と、リアルタイム通信に対するユーザーの需要の増大に伴い、インスタント メッセージング システムは一般的な開発となっています。分野。さまざまなリアルタイム通信のニーズを満たすために、PHP オープンソース フレームワーク Workerman を使用して、効率的で安定したインスタント メッセージング システムを構築できます。この記事では、Workerman フレームワークを使用して強力なインスタント メッセージング システムを開発する方法を紹介し、コード例を添付します。
-
Workerman のインストール:
まず、Workerman フレームワークをインストールする必要があります。ターミナルで次のコマンドを実行して Workerman をインストールします:composer require workerman/workerman
ログイン後にコピーインストールが完了したら、インスタント メッセージング システムの構築を開始できます。
- サーバーの作成:
server.php という名前の新しい PHP ファイルを作成して、インスタント メッセージング システムのサーバーを構築します。 server.php ファイルには、次のコードを記述する必要があります。
<?php require_once __DIR__.'/vendor/autoload.php'; use WorkermanWorker; // 创建一个Worker监听2345端口,使用websocket协议通信 $ws_worker = new Worker("websocket://0.0.0.0:2345"); // 设置进程数 $ws_worker->count = 4; // 当客户端连接时 $ws_worker->onConnect = function($connection){ echo "New connection "; }; // 当客户端发送消息时 $ws_worker->onMessage = function($connection, $data){ foreach($connection->worker->connections as $clientConnection){ $clientConnection->send($data); } }; // 当客户端断开连接时 $ws_worker->onClose = function($connection){ echo "Connection closed "; }; // 运行worker Worker::runAll();
上記のコードは、Worker オブジェクトを作成し、ポート 2345 をリッスンし、WebSocket プロトコルを使用して通信します。クライアントが接続されている場合は「新しい接続」が出力され、クライアントがメッセージを送信すると、接続されているすべてのクライアントにメッセージが送信され、クライアントが切断された場合は「接続が閉じられました」が出力されます。最後に、Worker::runAll() メソッドを使用してワーカーを実行します。
- クライアントの作成:
client.php という名前の新しい PHP ファイルを作成します。このファイルは、インスタント メッセージング システムのクライアントの構築に使用されます。 client.php ファイルに、次のコードを記述する必要があります。
<?php require_once __DIR__.'/vendor/autoload.php'; use WorkermanWorker; use WorkermanAutoloader; use WorkermanConnectionAsyncTcpConnection; $connect_list = array(); // 当用户输入消息时 function onMessage($connect) { // 从终端读取用户输入的消息 $message = trim(fgets(STDIN)); // 发送消息到服务端 $connect->send($message); } // 创建一个异步TCP连接到服务端 $connect = new AsyncTcpConnection('ws://127.0.0.1:2345'); $connect->onConnect = function($connection){ echo "Connected to server "; }; $connect->onMessage = function($connection, $data){ echo "Received message: ".$data." "; }; $connect->onClose = function($connection){ echo "Disconnected from server "; }; // 运行连接 $connect->connect(); // 将连接对象保存到连接列表中 $connect_list[] = $connect; // 监听用户输入消息 Worker::addWorker(function(){ readline_callback_handler_install('', function(){}); while (true) { if (count($GLOBALS['connect_list']) > 0) { $read = array_values($GLOBALS['connect_list']); $write = null; $except = null; if (false === ($num_changed_streams = stream_select($read, $write, $except, 1))) { continue; } elseif ($num_changed_streams > 0) { foreach($read as $connect) { onMessage($connect); } } } } }); Worker::runAll();
上記のコードは、AsyncTcpConnection オブジェクトを作成し、サーバーの 2345 ポートに接続します。接続に成功した場合は「サーバーに接続しました」、サーバーから送信されたメッセージを受信した場合は「受信メッセージ: 」と具体的なメッセージ内容が出力され、サーバーとの接続が切断された場合は「サーバーから切断されました」と表示されます。 」と出力されます。同時に、ユーザーが入力したメッセージが監視され、接続オブジェクトを通じてサーバーに送信されます。
インスタント メッセージング システムを実行します:
ターミナルで次のコマンドを実行してサーバーとクライアントを起動します:php server.php php client.php
ログイン後にコピーサーバーとクライアントが実行されます。つまり、リスニング状態になり、相互にメッセージを送信できるようになります。サーバーは、クライアントから送信されたメッセージを受信すると、接続されているすべてのクライアントにメッセージをブロードキャストします。
概要:
この記事では、Workerman を使用して効率的なインスタント メッセージング システムを開発する方法を紹介しました。サーバーとクライアントを構築し、対応するコードを記述することで、リアルタイム通信機能を実現できます。 Workerman は API と関数の完全なセットを提供しており、強力なインスタント メッセージング システムを簡単に構築できます。この記事があなたのお役に立てれば幸いです、読んでいただきありがとうございます!
以上が労働者育成の実践: 効率的なインスタント メッセージング システムの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Workerman ドキュメントでファイルのアップロードとダウンロードを実装するには、特定のコード サンプルが必要です はじめに: Workerman は、シンプル、効率的、使いやすい高性能 PHP 非同期ネットワーク通信フレームワークです。実際の開発では、ファイルのアップロードとダウンロードが一般的な機能要件となりますが、この記事では、Workerman フレームワークを使用してファイルのアップロードとダウンロードを実装する方法と、具体的なコード例を紹介します。 1. ファイル アップロード: ファイル アップロードとは、ローカル コンピューター上のファイルをサーバーに転送する操作を指します。以下が使用されます

Workerman ドキュメントの基本的な使用方法の実装方法の紹介: Workerman は、開発者が同時実行性の高いネットワーク アプリケーションを簡単に構築できるようにする高性能 PHP 開発フレームワークです。この記事では、インストールと構成、サービスとリスニング ポートの作成、クライアント リクエストの処理など、Workerman の基本的な使用方法を紹介します。そして、対応するコード例を示します。 1. Workerman のインストールと構成 コマンド ラインに次のコマンドを入力して、Workerman をインストールします。

Swoole と Workerman はどちらも高性能の PHP サーバー フレームワークです。 Swoole は、非同期処理、優れたパフォーマンス、スケーラビリティで知られており、多数の同時リクエストと高スループットを処理する必要があるプロジェクトに適しています。 Workerman は、使いやすさや同時実行量が少ないプロジェクトに適した直感的な API を備え、非同期モードと同期モードの両方の柔軟性を提供します。

Workerman 開発: UDP プロトコルに基づくリアルタイム ビデオ通話 概要: この記事では、Workerman フレームワークを使用して、UDP プロトコルに基づくリアルタイム ビデオ通話機能を実装する方法を紹介します。 UDP プロトコルの特性を深く理解し、コード例を通じて、シンプルだが完全なリアルタイム ビデオ通話アプリケーションを構築する方法を示します。はじめに: ネットワーク通信において、リアルタイムのビデオ通話は非常に重要な機能です。従来の TCP プロトコルでは、リアルタイム性の高いビデオ通話を実装する場合、伝送遅延などの問題が発生する可能性があります。そしてUDP

Workerman ドキュメントにタイマー機能を実装する方法 Workerman は、タイマー機能を含む豊富な機能を提供する強力な PHP 非同期ネットワーク通信フレームワークです。タイマーを使用して、指定された時間間隔内でコードを実行します。これは、スケジュールされたタスクやポーリングなどのアプリケーション シナリオに非常に適しています。次に、Workerman でタイマー機能を実装する方法と具体的なコード例を詳しく紹介します。ステップ 1: Workerman をインストールする まず、Worker をインストールする必要があります

Workerman を使用して高可用性ロード バランシング システムを構築する方法には、特定のコード サンプルが必要です。現代のテクノロジーの分野では、インターネットの急速な発展に伴い、大量の同時リクエストを処理する必要がある Web サイトやアプリケーションがますます増えています。高可用性と高性能を実現するために、負荷分散システムは不可欠なコンポーネントの 1 つになっています。この記事では、PHP オープン ソース フレームワーク Workerman を使用して高可用性負荷分散システムを構築する方法を紹介し、具体的なコード例を示します。 1. ワーカーマンワークの紹介

Workerman ドキュメントでリバース プロキシ機能を実装するには、具体的なコード例が必要です はじめに: Workerman は、豊富な機能と強力なパフォーマンスを提供する高性能 PHP マルチプロセス ネットワーク通信フレームワークであり、Web のリアルタイム通信や長時間の通信で広く使用されています。接続、サービス シナリオ。このうち、Workermanはリバースプロキシ機能もサポートしており、サーバーが外部サービスを提供する際の負荷分散や静的リソースのキャッシュを実現できます。この記事ではWorkermanを利用してリバースプロキシ機能を実装する方法を紹介します。

Workerman ドキュメントで TCP/UDP 通信を実装する方法には、特定のコード サンプルが必要です。Workerman は、TCP および UDP 通信の実装に広く使用されている高性能 PHP 非同期イベント ドリブン フレームワークです。この記事では、Workerman を使用して TCP および UDP ベースの通信を実装する方法を紹介し、対応するコード例を示します。 1. TCP 通信用の TCP サーバーを作成します。Workerman を使用して TCP サーバーを作成するのは非常に簡単です。次のコードを記述するだけです: <?ph
