Ich kenne den Kämpfer! Aber ich hatte es vor kurzem ziemlich mit Workerman zu tun. Wenn Sie nicht über dieses PHP-Framework gestolpert sind, sollten Sie dies überprüfen!
Nun, Workerman ist ein asynchrones ereignisgesteuertes PHP-Framework zum einfachen Erstellen schneller, skalierbarer Netzwerkanwendungen. (Ich habe das gerade von ihrer Website kopiert und eingefügt, hahahah http://www.workerman.net/en/ )
Die einfache Möglichkeit, dies zu erklären, besteht darin, dass Sie für die Web-Socket-Programmierung lediglich zwei Dateien auf Ihrem Server oder lokalen Server (wo immer Sie arbeiten) benötigen.
server.php (Quellcode, der auf alle Anfragen des Clients reagiert)
client.php / client.html (Quellcode, der die anfordernden Dinge erledigt )
Im Grunde genommen korrigieren Sie den Code zuerst auf Ihrer server.php und starten den Server. Normalerweise starte ich den Server über diesen Befehl -> php server.php start , da ich Windows verwende, das den Kampf noch verstärkt
Nun, wenn Sie xampp verwenden. Hier ist eine Möglichkeit, dies zu tun. Gehen Sie dorthin, wo Sie Ihre Dateien ablegen möchten. In unserem Fall werden wir die Dateien ablegen
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php oder client.html
Angenommen, Sie haben diese Dateien bereits auf Ihrem lokalen Server. Öffnen Sie Ihren Git Bash oder Command Line oder Terminal oder was auch immer Sie verwenden und laden Sie die PHP-Bibliotheken hier herunter.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Normalerweise lade ich es über den Composer herunter und lade diese Dateien automatisch in meine PHP-Skripte.
Und überprüfen Sie auch dieses. Das ist wirklich wichtig ! Sie benötigen diese Javascript-Bibliothek, damit client.php oder client.html beim Ausführen mit server.php kommunizieren können.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Ich habe gerade diesen socket.io-client-Ordner auf derselben Ebene wie meine server.php und meine client.php kopiert und eingefügt
Hier ist der server.php Quellcode
<?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();
Und hier ist die client.php oder client.html Source
<!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>
Öffnen Sie erneut Ihre Befehlszeile oder Git Bash oder Ihr Terminal, in dem Sie Ihre server.php-Datei ablegen. In unserem Fall ist das also C: / xampp / htdocs / websocket / und wir geben php server.php ein und drücken die Eingabetaste.
Gehen Sie dann zu Ihrem Browser und geben Sie http: //localhost/websocket/client.php ein , um Ihre Site zu besuchen. Geben Sie dann einfach etwas in dieses Textfeld ein und Sie werden unterwegs einen einfachen PHP-Websocket sehen!
Sie müssen sich nur erinnern. Bei der Web-Socket-Programmierung werden lediglich ein Server und ein Client benötigt. Führen Sie zuerst den Servercode aus und öffnen Sie den Clientcode. Und da hast du es! Hoffe das hilft!