PHP 소켓 IO

Sheeraz Gul 2024년2월15일
  1. PHP 소켓 IO
  2. 엘리펀트 IO 설치 방법
PHP 소켓 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 엔진용 내장 엔진은 다음과 같습니다.

  1. 소켓.io 5.x
  2. 소켓.io 4.x
  3. 소켓.io 3.x
  4. 소켓.io 2.x
  5. 소켓.io 1.x
  6. 소켓.io 0.x

엘리펀트 IO 설치 방법

elephant.ioGitHub에서 제공되며 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>

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

위의 코드는 소켓 서버와 통신하여 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 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