PHP ソケット IO
このチュートリアルでは、PHP で socket.io
を実装する方法を示します。
PHP ソケット IO
socket.io
ライブラリは、クライアントとサーバー間の双方向、低遅延、およびイベントベースの通信を可能にします。 公式の socket.io
API は こちら にあり、Node.js を使用して実装されています。
socket.io
は PHP で書かれていないため、PHP で直接実装されていません。 PHP の socket.io
を実装する PHP の Elephant.io
のような API を使用できます。
Elephant.io
は PHP で書かれた大まかな WebSocket
クライアントで、サーバーとクライアント間の通信を容易にします。 Elephant.io
には、少なくとも PHP 5.4 と OpenSSL が必要です。
Elephant.io
は MIT ライセンスの下でライセンスされています。 Elephant.io
で使用される Elephant.io
または Socket.io
エンジンの組み込みエンジンは次のとおりです。
- Socket.io 5.x
- Socket.io 4.x
- Socket.io 3.x
- Socket.io 2.x
- ソケット.io 1.x
- Socket.io 0.x
エレファント IO のインストール方法
elephant.io
は GitHub で提供されており、Composer
を使用してインストールできます。 まず、PHP に Composer
がインストールされていることを確認します。インストールされていない場合は、まず Composer
をインストールし、以下の手順に従います。
-
このリンクにアクセスしてください。
-
ダウンロード
オプションをクリックします。 -
Composer-Setup.exe
ファイルをダウンロードします。 -
Composer-Setup.exe
ファイルを実行します。 -
すべてのユーザーにインストールします。
-
php.exe
ファイルへのパスを選択します。次へ
をクリックします。 -
プロキシを選択せずに、[次へ] をクリックします。
-
次のページで
インストール
をクリックします。 -
インストールが完了したら、
次へ
をクリックしてから完了
をクリックします。
上記の手順により、Composer
が Windows システムにインストールされ、cmd で composer
コマンドを実行して確認できます。
次に、composer.phar
を php
コマンドで実行して elephant.io
をインストールし、Composer.phar
を現在のディレクトリにインストールする必要があります。 次のコマンドを使用します。
php -r "readfile('https://getcomposer.org/installer');" | php
このコマンドの出力は次のようになります。
C:\Users\Sheeraz>php -r "readfile('https://getcomposer.org/installer');" | php
All settings correct for using Composer
Downloading...
Composer (version 2.4.2) successfully installed to: C:\Apache24\htdocs\composer.phar
Use it: php composer.phar
C:\Apache24\htdocs>
Composer
と Composer.phar
がインストールされたら、Elephant.io
をインストールしましょう。 次のコマンドを実行します。
php composer.phar require elephantio/elephant.io
上記のコマンドは elephant.io
をインストールし、バージョンの非互換性エラーがスローされる場合は、次のコマンドを使用して composer
から直接インストールします。
composer require elephantio/elephant.io:*
Elephant IO インストールの出力は次のようになります。
Elephant IO パッケージがインストールされると、それを使用してソケット サーバーと通信できます。 ここに例があります。
<?php
require( __DIR__ . '/elephantio/elephant.io/lib/ElephantIO/Client.php');
use ElephantIO\Client as ElephantIOClient;
$Elephant_Client = new ElephantIOClient('http://localhost:8000', 'socket.io', 1, false, true, true);
$Elephant_Client->init();
$Elephant_Client->emit('action', 'delftstack');
$Elephant_Client->close();
echo 'trying to send `delftstack` to the event named action';
?>
このコードを実行する前に、ポート 8000 でサーバーを起動する必要がある場合があります。cmd で次のコマンドを実行します。
php -S localhost:8000
上記のコードは、ソケット サーバーと通信して、データ delftstack
を action
という名前のイベントに送信します。 上記のコードの出力は次のとおりです。
trying to send `foo' to the event called action
通信に 30 秒以上かかる場合、コードは次のような致命的なエラーをスローします。
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Apache24\htdocs\vendor\elephantio\elephant.io\lib\ElephantIO\Client.php on line 326
Elephant.io
にはドキュメントは含まれていませんが、ソケット サーバー通信を理解できるいくつかの例が提供されています。 例は ここ にあります。
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook