¡Conozco al luchador! Pero recientemente lo tuve trabajando con Workerman. Si no te has topado con este marco de trabajo de PHP, ¡entonces mira esto!
Bueno, Workerman es un marco PHP asincrónico basado en eventos para construir fácilmente aplicaciones de red rápidas y escalables. (Acabo de copiar y pegar eso desde su sitio web jajajaja http://www.workerman.net/en/ )
La manera fácil de explicar esto es que, cuando se trata de programación de socket web, todo lo que realmente necesita tener es tener 2 archivos en su servidor o servidor local (donde sea que esté trabajando).
server.php (código fuente que responderá a todas las solicitudes del cliente)
client.php / client.html (código fuente que hará las cosas solicitadas)
Básicamente, primero debes corregir el código en tu server.php e iniciar el servidor. Normalmente, como estoy usando Windows que agrega más de la lucha, ejecuto el servidor a través de este comando -> php server.php start
Bueno, si estás usando xampp. Aquí hay una forma de hacerlo. Ve a donde quieras poner tus archivos. En nuestro caso, vamos a poner los archivos en
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php o client.html
Suponiendo que ya tiene esos archivos en su servidor local. Abra su Git Bash o línea de comando o terminal o lo que esté utilizando y descargue las bibliotecas php aquí.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Por lo general, lo descargo a través del compositor y simplemente autocargo esos archivos en mis scripts php.
Y también mira este. ¡Esto es realmente importante ! Necesita esta biblioteca de JavaScript para que client.php o client.html se comuniquen con el server.php cuando lo ejecute.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Simplemente copié y pegué esa carpeta socket.io-client en el mismo nivel que mi server.php y mi client.php
Aquí está el código fuente server.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;
// listen port 2021 for socket.io client
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
$socket->on('send message', function($msg)use($io){
$io->emit('new message', $msg);
});
});
Worker::runAll();
Y aquí está el código fuente client.php o client.html
<!DOCTYPE html>
<html>
<head>
<title>Chat</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="chat-messages" style="overflow-y: scroll; height: 100px; "></div>
<input type="text" class="message">
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="socket.io-client/socket.io.js"></script>
<script>
var socket = io.connect("ws://127.0.0.1:2021");
$('.message').on('change', function(){
socket.emit('send message', $(this).val());
$(this).val('');
});
socket.on('new message', function(data){
$('#chat-messages').append('<p>' + data +'</p>');
});
</script>
</html>
Una vez más, abra su línea de comando o git bash o terminal donde coloca su archivo server.php. Entonces, en nuestro caso, eso es C: / xampp / htdocs / websocket / y escribió php server.php start y presione enter.
Luego vaya a su navegador y escriba http: //localhost/websocket/client.php para visitar su sitio. Luego, escriba cualquier cosa en ese cuadro de texto y verá un php websocket básico sobre la marcha.
Usted sólo tiene que recordar. En la programación de sockets web, solo necesita un servidor y un cliente. Ejecute primero el código del servidor y abra el código del cliente. ¡Y ahí lo tienes! ¡Espero que esto ayude!