HOWTO · PHP
PHP 소켓 IO
이 튜토리얼은 PHP에서 socket.io를 구현하는 방법을 보여줍니다.
이 페이지의 내용
이 튜토리얼은 PHP에서 socket.io를 구현하는 방법을 보여줍니다.
PHP 소켓 IO
socket.io 라이브러리는 클라이언트와 서버 간의 양방향, 저지연 및 이벤트 기반 통신을 가능하게 합니다. Node.js를 사용하여 구현된 공식 socket.io API는 여기에서 찾을 수 있습니다.
socket.io는 PHP로 작성되지 않았기 때문에 PHP에서 직접 구현되지 않습니다. PHP의 Elephant.io와 같은 API를 사용하여 PHP의 socket.io를 구현할 수 있습니다.
Elephant.io는 PHP로 작성된 대략적인 WebSocket 클라이언트로, 서버와 클라이언트 간의 통신을 쉽게 할 수 있습니다. Elephant.io에는 최소 PHP 5.4 및 OpenSSL이 필요합니다.
Elephant.io는 MIT 라이선스에 따라 라이선스가 부여됩니다. Elephant.io에 사용되는 Elephant.io 또는 Socket.io 엔진용 내장 엔진은 다음과 같습니다.
- 소켓.io 5.x
- 소켓.io 4.x
- 소켓.io 3.x
- 소켓.io 2.x
- 소켓.io 1.x
- 소켓.io 0.x
엘리펀트 IO 설치 방법
elephant.io는 GitHub에서 제공되며 Composer를 사용하여 설치할 수 있습니다. 먼저 Composer가 PHP에 설치되어 있는지 확인하고 설치되어 있지 않으면 Composer를 먼저 설치하고 아래 설명된 단계를 따르십시오.
-
이 링크로 이동하십시오.
-
다운로드옵션을 클릭합니다. -
Composer-Setup.exe파일을 다운로드합니다. -
Composer-Setup.exe파일을 실행합니다. -
모든 사용자를 위해 설치합니다.
-
php.exe파일의 경로를 선택합니다.다음을 클릭합니다. -
프록시를 선택하지 말고
다음을 클릭하십시오. -
다음 페이지에서
설치를 클릭합니다. -
설치가 완료되면
다음을 클릭한 다음마침을 클릭합니다.
위의 단계는 Windows 시스템에 Composer를 설치하고 cmd에서 composer 명령을 실행하여 확인할 수 있습니다.
이제 php 명령으로 composer.phar를 실행하여 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에는 문서가 포함되어 있지 않지만 소켓 서버 통신을 이해할 수 있는 몇 가지 예를 제공합니다. 예제는 여기에서 찾을 수 있습니다.