PHP ソケット IO

Sheeraz Gul 2024年2月15日
  1. PHP ソケット IO
  2. エレファント IO のインストール方法
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 エンジンの組み込みエンジンは次のとおりです。

  1. Socket.io 5.x
  2. Socket.io 4.x
  3. Socket.io 3.x
  4. Socket.io 2.x
  5. ソケット.io 1.x
  6. Socket.io 0.x

エレファント IO のインストール方法

elephant.ioGitHub で提供されており、Composer を使用してインストールできます。 まず、PHP に Composer がインストールされていることを確認します。インストールされていない場合は、まず Composer をインストールし、以下の手順に従います。

  • このリンクにアクセスしてください。
  • ダウンロードオプションをクリックします。
  • Composer-Setup.exe ファイルをダウンロードします。
  • Composer-Setup.exe ファイルを実行します。
  • すべてのユーザーにインストールします。
  • php.exe ファイルへのパスを選択します。 次へをクリックします。
  • プロキシを選択せずに、[次へ] をクリックします。
  • 次のページでインストールをクリックします。
  • インストールが完了したら、次へをクリックしてから完了をクリックします。

上記の手順により、Composer が Windows システムにインストールされ、cmd で composer コマンドを実行して確認できます。

次に、composer.pharphp コマンドで実行して 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>

ComposerComposer.phar がインストールされたら、Elephant.io をインストールしましょう。 次のコマンドを実行します。

php composer.phar require elephantio/elephant.io

上記のコマンドは elephant.io をインストールし、バージョンの非互換性エラーがスローされる場合は、次のコマンドを使用して composer から直接インストールします。

composer require elephantio/elephant.io:*

Elephant IO インストールの出力は次のようになります。

PHP エレファント 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

上記のコードは、ソケット サーバーと通信して、データ delftstackaction という名前のイベントに送信します。 上記のコードの出力は次のとおりです。

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 Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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