ฉันรู้จักคนต่อสู้! แต่เมื่อไม่นานมานี้ฉันได้ทำงานร่วมกับ Workerman หากคุณยังไม่สะดุดกับ php framework นี้คุณควรตรวจสอบสิ่งนี้ให้ดีขึ้น!
Workerman เป็นเฟรมเวิร์ก PHP ที่ขับเคลื่อนด้วยเหตุการณ์แบบอะซิงโครนัสเพื่อสร้างแอปพลิเคชันเครือข่ายที่รวดเร็วและปรับขนาดได้อย่างง่ายดาย (ฉันเพิ่งคัดลอกและวางจากเว็บไซต์ของพวกเขาฮ่า ๆ ๆ ๆhttp://www.workerman.net/en/ )
วิธีง่ายๆในการอธิบายสิ่งนี้ก็คือเมื่อพูดถึงการเขียนโปรแกรมเว็บซ็อกเก็ตสิ่งที่คุณต้องมีจริงๆคือต้องมี 2 ไฟล์ในเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ภายใน (ทุกที่ที่คุณทำงานอยู่)
server.php (ซอร์สโค้ดซึ่งจะตอบสนองต่อคำขอทั้งหมดของลูกค้า)
client.php / client.html (ซอร์สโค้ดซึ่งจะทำสิ่งที่ร้องขอ)
โดยพื้นฐานแล้วคุณต้องใส่รหัสบนเซิร์ฟเวอร์. phpก่อนและเริ่มเซิร์ฟเวอร์ โดยปกติเมื่อฉันใช้ windows ซึ่งเพิ่มการต่อสู้มากขึ้นฉันจึงเรียกใช้เซิร์ฟเวอร์ผ่านคำสั่งนี้ -> php server.php start
ถ้าคุณใช้ xampp นี่เป็นวิธีหนึ่งที่ทำได้ ไปที่ใดก็ได้ที่คุณต้องการใส่ไฟล์ของคุณ ในกรณีของเราเราจะใส่ไฟล์เข้าไป
C: /xampp/htdocs/websocket/server.php
C: /xampp/htdocs/websocket/client.php หรือ client.html
สมมติว่าคุณมีไฟล์เหล่านั้นอยู่แล้วในเซิร์ฟเวอร์ภายในของคุณ เปิด Git Bash หรือ Command Line หรือ Terminal หรือตามที่คุณใช้และดาวน์โหลดไลบรารี php ที่นี่
https://github.com/walkor/Workerman
https://github.com/walkor/phpsocket.io
ฉันมักจะดาวน์โหลดผ่านนักแต่งเพลงและโหลดไฟล์เหล่านั้นโดยอัตโนมัติในสคริปต์ php ของฉัน
และตรวจสอบอันนี้ด้วย นี่สำคัญจริงๆ! คุณต้องใช้ไลบรารีจาวาสคริปต์นี้เพื่อให้คุณ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 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>
อีกครั้งให้เปิดบรรทัดคำสั่งหรือ git bash หรือเทอร์มินัลที่คุณใส่ไฟล์ server.php ดังนั้นในกรณีของเรานั่นคือ C: / xampp / htdocs / websocket / และพิมพ์ในphp server.php startแล้วกด Enter
จากนั้นไปที่เบราว์เซอร์ของคุณแล้วพิมพ์ http: //localhost/websocket/client.phpเพื่อเยี่ยมชมเว็บไซต์ของคุณ จากนั้นพิมพ์อะไรก็ได้ในกล่องข้อความนั้นคุณจะเห็นเว็บซ็อกเก็ต php พื้นฐานในระหว่างการเดินทาง!
คุณต้องจำไว้ ในการเขียนโปรแกรมเว็บซ็อกเก็ตจำเป็นต้องมีเซิร์ฟเวอร์และไคลเอนต์ รันรหัสเซิร์ฟเวอร์ก่อนและเปิดรหัสไคลเอนต์ และคุณมีมัน! หวังว่านี่จะช่วยได้!