Tôi biết người đàn ông đấu tranh! Nhưng gần đây tôi đã làm việc khá nhiều với Workerman. Nếu bạn không vấp phải khung php này thì tốt hơn bạn nên kiểm tra nó!
Chà, Workerman là một khung công tác PHP điều khiển không đồng bộ để dễ dàng xây dựng các ứng dụng mạng nhanh, có thể mở rộng. (Tôi vừa sao chép và dán nó từ trang web của họ hahahah http://www.workerman.net/en/ )
Cách dễ dàng để giải thích điều này là khi nói đến lập trình ổ cắm web, tất cả những gì bạn thực sự cần có là có 2 tệp trong máy chủ hoặc máy chủ cục bộ (bất cứ nơi nào bạn đang làm việc).
server.php (mã nguồn sẽ đáp ứng tất cả yêu cầu của khách hàng)
client.php / client.html (mã nguồn sẽ thực hiện các yêu cầu)
Vì vậy, về cơ bản, bạn phải mã trước tiên trên server.php của bạn và khởi động máy chủ. Thông thường, khi tôi đang sử dụng các cửa sổ làm tăng thêm sự vật lộn, tôi chạy máy chủ thông qua lệnh này -> php server.php bắt đầu
Vâng nếu bạn đang sử dụng xampp. Đây là một cách để làm điều đó. Đi đến bất cứ nơi nào bạn muốn đặt các tập tin của bạn. Trong trường hợp của chúng tôi, chúng tôi sẽ đưa các tập tin vào
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php hoặc client.html
Giả sử rằng bạn đã có những tệp đó trong máy chủ cục bộ của mình. Mở Git Bash hoặc Command Line hoặc Terminal của bạn hoặc bất cứ điều gì bạn đang sử dụng và tải xuống các thư viện php tại đây.
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
Tôi thường tải nó qua trình soạn thảo và chỉ tự động tải các tệp đó trong tập lệnh php của mình.
Và cũng kiểm tra cái này Điều này thực sự quan trọng ! Bạn cần libary javascript này để cho bạn client.php hoặc client.html để giao tiếp với server.php khi bạn chạy nó.
https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client
Tôi chỉ sao chép và dán thư mục socket.io-client đó ở cùng cấp độ với server.php và client.php của tôi
Đây là server.php sourcecode
<?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();
Và đây là client.php hoặc client.html sourcecode
<!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>
Một lần nữa, mở dòng lệnh của bạn hoặc git bash hoặc thiết bị đầu cuối nơi bạn đặt tệp server.php của mình. Vì vậy, trong trường hợp của chúng tôi, đó là C: / xampp / htdocs / websocket / và gõ vào php server.php bắt đầu và nhấn enter.
Sau đó, truy cập trình duyệt của bạn và nhập http: //localhost/websocket/client.php để truy cập trang web của bạn. Sau đó, chỉ cần gõ bất cứ điều gì vào hộp văn bản đó và bạn sẽ thấy một websocket php cơ bản trên đường đi!
Bạn chỉ cần nhớ. Trong lập trình ổ cắm web, nó chỉ cần một máy chủ và máy khách. Chạy mã máy chủ trước và mở mã máy khách. Và bạn có nó rồi đấy! Hi vọng điêu nay co ich!