Je connais l'homme de lutte! Mais j'ai récemment travaillé avec Workerman. Si vous n'êtes pas tombé sur ce framework php, vous feriez mieux de le vérifier!
Eh bien, Workerman est un framework PHP asynchrone piloté par les événements pour créer facilement des applications réseau rapides et évolutives. (Je viens de copier et coller cela à partir de leur site Web hahahah http://www.workerman.net/en/ )
La façon simple d'expliquer cela est que lorsqu'il s'agit de programmation de socket Web, tout ce dont vous avez vraiment besoin est d'avoir 2 fichiers sur votre serveur ou serveur local (où que vous soyez).
server.php (code source qui répondra à toutes les demandes du client)
client.php / client.html (code source qui fera les choses demandées)
Donc, fondamentalement, vous corrigez d' abord le code sur votre serveur.php et démarrez le serveur. Normalement, comme j'utilise Windows, ce qui ajoute plus de difficulté, je lance le serveur via cette commande -> php server.php start
Eh bien, si vous utilisez xampp. Voici une façon de le faire. Accédez à l'endroit où vous souhaitez placer vos fichiers. Dans notre cas, nous allons mettre les fichiers dans
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php ou client.html
En supposant que vous avez déjà ces fichiers sur votre serveur local. Ouvrez votre Git Bash ou votre ligne de commande ou votre terminal ou celui que vous utilisez et téléchargez les bibliothèques php ici.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Je le télécharge généralement via composer et je charge simplement ces fichiers dans mes scripts php.
Et vérifiez également celui-ci. C'est vraiment important ! Vous avez besoin de cette bibliothèque javascript pour que client.php ou client.html puisse communiquer avec le server.php lorsque vous l'exécutez.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Je viens de copier et coller ce dossier socket.io-client au même niveau que mon serveur.php et mon client.php
Voici le code source 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();
Et voici le code source client.php ou 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>
Encore une fois, ouvrez votre ligne de commande ou git bash ou terminal où vous avez placé votre fichier server.php. Donc, dans notre cas, c'est C: / xampp / htdocs / websocket / et tapé dans php server.php start et appuyez sur Entrée.
Ensuite, allez dans votre navigateur et tapez http: //localhost/websocket/client.php pour visiter votre site. Ensuite, tapez simplement n'importe quoi dans cette zone de texte et vous verrez un websocket php de base en déplacement!
Vous devez juste vous souvenir. Dans la programmation de socket Web, il suffit d'un serveur et d'un client. Exécutez d'abord le code serveur et ouvrez le code client. Et voila! J'espère que cela t'aides!