Я знаю людину боротьби! Але я нещодавно в ньому сильно працював з Workerman. Якщо ви не натрапили на цю рамку php, то краще перевірте це!
Ну, Workerman - це асинхронна рамка PHP, керована подіями, яка дозволяє легко створювати швидкі масштабовані мережеві програми. (Я щойно скопіював і вставив це з свого веб-сайту hahahah http://www.workerman.net/uk/ )
Найпростіший спосіб пояснити це тим, що якщо мова йде про програмування веб-сокетів, все, що вам потрібно мати, - це мати два файли на вашому сервері або на локальному сервері (де б ви не працювали).
server.php (вихідний код, який відповість на всі запити клієнта)
client.php / client.html (вихідний код, який виконуватиме запит)
Таким чином, ви правий код спочатку на сервері server.php і запускаєте сервер. Зазвичай, коли я використовую Windows, що додає більше зусиль, я запускаю сервер за допомогою цієї команди -> 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 потрібна для того, щоб клієнт.php або client.html спілкувався з сервером.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 на ходу!
Вам просто потрібно пам’ятати. У програмуванні веб-сокетів йому просто потрібен сервер і клієнт. Спершу запустіть код сервера та відкрийте код клієнта. І там у вас є! Сподіваюся, це допомагає!