Я знаю человека борьбы! Но недавно я довольно много работал с Workerman. Если вы еще не сталкивались с этим фреймворком php, вам лучше проверить это!
Что ж, Workerman - это асинхронная управляемая событиями среда PHP для простого создания быстрых масштабируемых сетевых приложений. (Я просто скопировал и вставил это с их веб-сайта, ха-ха-ха http://www.workerman.net/en/ )
Самый простой способ объяснить это: когда дело доходит до программирования веб-сокетов, все, что вам действительно нужно, - это иметь 2 файла на вашем сервере или локальном сервере (где бы вы ни работали).
server.php (исходный код, который будет отвечать на все запросы клиента)
client.php / client.html (исходный код, который будет выполнять запросы )
Итак, вы сначала исправляете код на своем server.php и запускаете сервер. Обычно, поскольку я использую окна, которые добавляют больше борьбы, я запускаю сервер с помощью этой команды -> php server.php start
Хорошо, если вы используете xampp. Вот один из способов сделать это. Идите туда, куда вы хотите поместить свои файлы. В нашем случае мы собираемся поместить файлы в
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php или client.html
Предполагая, что у вас уже есть эти файлы на вашем локальном сервере. Откройте свой Git Bash, командную строку или терминал, или что бы вы ни использовали, и загрузите здесь библиотеки php.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Обычно я загружаю его через композитор и просто автоматически загружаю эти файлы в свои скрипты php.
А также проверьте это. Это действительно важно ! Эта библиотека javascript нужна вам для того, чтобы client.php или client.html могли взаимодействовать с server.php при его запуске.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Я просто скопировал и вставил эту папку socket.io-client на том же уровне, что и мои server.php и мои client.php.
Вот исходный код 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();
А вот исходный код client.php или 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>
Еще раз откройте командную строку или git bash или терминал, в который вы поместили файл server.php. Итак, в нашем случае это C: / xampp / htdocs / websocket /, введите php server.php start и нажмите Enter.
Затем перейдите в браузер и введите http: //localhost/websocket/client.php, чтобы перейти на ваш сайт. Затем просто введите что-нибудь в это текстовое поле, и вы увидите базовый веб-узел php на ходу!
Просто нужно помнить. В программировании веб-сокетов ему просто нужны сервер и клиент. Сначала запустите код сервера и откройте код клиента. И вот оно! Надеюсь это поможет!