E/S de zócalo de PHP
Este tutorial demuestra cómo implementar socket.io
en PHP.
E/S de zócalo de PHP
La biblioteca socket.io
permite la comunicación bidireccional, de baja latencia y basada en eventos entre el cliente y el servidor. La API oficial socket.io
se puede encontrar aquí, que se implementa usando Node.js.
El socket.io
no está implementado directamente en PHP porque no está escrito en PHP. Podemos usar las API como Elephant.io
en PHP, que implementa socket.io
en PHP para nosotros.
El Elephant.io
es un cliente WebSocket
en bruto escrito en PHP, que puede facilitar la comunicación entre el servidor y el cliente. El Elephant.io
requiere al menos PHP 5.4 y OpenSSL.
El Elephant.io
está autorizado bajo la licencia MIT. Los motores incorporados para los motores Elephant.io
o Socket.io
utilizados en Elephant.io
son:
- Zócalo.io 5.x
- Zócalo.io 4.x
- Zócalo.io 3.x
- Zócalo.io 2.x
- Zócalo.io 1.x
- Zócalo.io 0.x
Cómo instalar Elephant IO
El elephant.io
se proporciona en GitHub y se puede instalar usando el Compositor
. En primer lugar, asegúrese de que el Composer
esté instalado en su PHP y, si no lo está, primero instale el Composer
, siga los pasos que se describen a continuación.
-
Vaya a este enlace.
-
Haga clic en la opción
Descargar
. -
Descargue el archivo
Composer-Setup.exe
. -
Ejecute el archivo
Composer-Setup.exe
. -
Instalar para todos los usuarios.
-
Seleccione la ruta al archivo
php.exe
. Haga clic en Siguiente. -
No seleccione el proxy y haga clic en
Siguiente
. -
Haga clic en
Instalar
en la página siguiente. -
Una vez finalizada la instalación, haga clic en
Siguiente
y luego enFinalizar
.
Los pasos anteriores instalarán el Compositor
en nuestro sistema Windows, y puede verificarlo ejecutando el comando compositor
en cmd.
Ahora necesitamos ejecutar composer.phar
con el comando php
para instalar elephant.io
e instalar Composer.phar
en el directorio actual; use el siguiente comando.
php -r "readfile('https://getcomposer.org/installer');" | php
La salida de este comando será:
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>
Una vez instalado el Composer
y Composer.phar
, instalemos el Elephant.io
. Ejecute el siguiente comando.
php composer.phar require elephantio/elephant.io
El comando anterior instalará el elephant.io
y, si arroja el error de incompatibilidad de versión, utilice el siguiente comando para instalarlo directamente desde el compositor
.
composer require elephantio/elephant.io:*
El resultado de la instalación de Elephant IO será:
Una vez instalado el paquete Elephant IO, podemos usarlo para comunicarnos con el servidor de socket. Aquí hay un ejemplo.
<?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';
?>
Antes de ejecutar este código, es posible que deba iniciar el servidor en el puerto 8000. Ejecute el siguiente comando en cmd.
php -S localhost:8000
El código anterior se comunicará con el servidor de socket para enviar los datos delftstack
al evento llamado acción
. La salida para el código anterior es:
trying to send `foo' to the event called action
Si la comunicación tarda más de 30 segundos, el código arrojará un error fatal como:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Apache24\htdocs\vendor\elephantio\elephant.io\lib\ElephantIO\Client.php on line 326
El Elephant.io
no contiene documentación, pero proporciona algunos ejemplos a partir de los cuales podemos entender la comunicación del servidor de socket; los ejemplos se pueden encontrar aquí.
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