PHPでWebSocketを使用する方法
ネットワーク技術の発展に伴い、ブラウザとサーバーの間にリアルタイム通信チャネルを確立して接続を維持できる WebSocket (Web ソケット) が一般的なプロトコルになりました。このプロトコルは、Web アプリケーションでリアルタイム通信機能を実現する上で大きな役割を果たします。
PHP 開発の分野では、WebSocket がますます広く使用されています。この記事では、PHPでWebSocketを使う方法を紹介します。
- WebSocket ライブラリのインストール
まず、PHP で WebSocket 関数を簡単に実装するには、PHP WebSocket ライブラリを使用する必要があります。現在、最も人気のある PHP WebSocket ライブラリは、Ratchet と PHP WebSocket です。
ここでは、ReactPHP ライブラリを使用して非同期イベント駆動型 PHP を実装する Ratchet を使用します。これは、他のフレームワークと完全に互換性があり、柔軟性と拡張性を備えています。
Ratchet は Composer を使用してインストールおよび管理されるため、始める前に、まず Composer をインストールする必要があります。
Composer はここからダウンロードできます: https://getcomposer.org/
Composer を使用して Ratchet をインストールします:
composer require cboden/ratchet
- PHP WebSocket サーバーを作成します
この例では、単純なチャット ルームを実装し、Ratchet を使用して WebSocket サーバーを作成します。実装手順は次のとおりです:
a. WebSocket サーバーの作成
use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; require dirname(__DIR__) . '/vendor/autoload.php'; $server = IoServer::factory( new HttpServer( new WsServer( new Chat() ) ), 8080 ); $server->run();
ここでは、最初に Ratchet ライブラリが導入され、次に WebSocket サーバーが作成されます。 HTTP および WebSocket プロトコルのサポートをそれぞれ指定し、それらを Chat クラスに渡します (Chat クラスがクライアント接続要求の処理に使用されることは後で説明します)。
ここではポート 8080 をリッスンします。
b. チャット ルームを作成する
use RatchetMessageComponentInterface; use RatchetConnectionInterface; class Chat implements MessageComponentInterface { public $clients; public function __construct() { $this->clients = new SplObjectStorage; } public function onOpen(ConnectionInterface $conn) { $this->clients->attach($conn); } public function onMessage(ConnectionInterface $from, $msg) { foreach ($this->clients as $client) { if ($client !== $from) { $client->send($msg); } } } public function onClose(ConnectionInterface $conn) { $this->clients->detach($conn); } public function onError(ConnectionInterface $conn, Exception $e) { $conn->close(); } }
ここでは、MessageComponentInterface インターフェイスを実装する Chat という名前のクラスを作成しました。このインターフェイスは、さまざまな接続状態で WebSocket サーバーによって実行される操作を定義します。
具体的には、コンストラクターでクライアント変数を宣言しました。これは、接続されたクライアントを格納する SplObjectStorage オブジェクトです。 onOpen メソッドでは、接続オブジェクトがこの変数に割り当てられます。
クライアントからメッセージがある場合、onMessage メソッドを通じてメッセージをブロードキャストし、接続ごとに受信します。
onClose メソッドでは、接続オブジェクトが変数から削除されます。エラーが発生し、クライアント接続を処理できない場合は、onError 関数が呼び出されます。
- クライアント側の JavaScript コードを作成する
次に、WebSocket サーバーに接続するためのクライアント側の JavaScript コードが必要です。
let socket = new WebSocket('ws://localhost:8080'); socket.onopen = function(event) { console.log('WebSocket连接已建立'); }; socket.onmessage = function(event) { console.log('收到消息:' + event.data); };
ここでは、WebSocket オブジェクトの API を直接使用して、サーバーに接続し、メッセージを送受信します。
- WebSocket サーバーの実行
上記の手順を完了すると、WebSocket サーバーが正常に作成されました。次に、コマンド ラインからサーバーを実行します。
php server.php
コマンド ラインからサーバーを起動すると、次のような結果が表示されるはずです。
2019-03-22 11:46:55 WebSocketServer: Listening on 0.0.0.0:8080 2019-03-22 11:52:50 WebSocketServer: Opened connection to http://localhost:54616
は、WebSocket サービスが開始されたことを示します。成功し、ポート 8080 でリッスンします。
- WebSocket 接続のテスト
最後に、ブラウザを開いて http://localhost/chat.html にアクセスすると、ブラウザが WebSocket に接続して参加していることがわかります。サーバ。
let socket = new WebSocket('ws://localhost:8080'); socket.onopen = function(event) { console.log('WebSocket连接已建立'); socket.send('欢迎加入聊天室'); }; socket.onmessage = function(event) { console.log('收到消息:' + event.data); };
ここでは、メッセージをサーバーに送信し、サーバー メッセージの受信時にコンソールに記録します。
テスト Web ページを実行すると、コンソールに次のような出力が表示されます。
WebSocket已连接 WebSocket收到消息:欢迎加入聊天室
これで、PHP で WebSocket が正常に使用され、簡単なチャット ルームが作成されました。このチュートリアルがお役に立てば幸いです。
以上がPHPでWebSocketを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
