Pengenalan kepada pengaturcaraan berbilang benang PHP: Cipta pelayan WebSocket menggunakan sambungan swoole
Kata Pengantar
Dalam pembangunan web, komunikasi masa nyata telah menjadi keperluan yang semakin penting. Protokol HTTP tradisional tidak dapat memenuhi keperluan komunikasi masa nyata, dan protokol WebSocket telah menjadi penyelesaiannya. Untuk melaksanakan pelayan WebSocket dalam PHP, kita boleh menggunakan sambungan swoole untuk mencipta pelayan berbilang benang.
1. Apa itu swool?
swoole ialah sambungan PHP yang menyediakan sokongan untuk asynchronous, multi-threading dan coroutines. Dengan menggunakan swoole, kami boleh mencipta pelayan serentak, tugas tak segerak, sambungan panjang dan aplikasi rangkaian berprestasi tinggi dalam PHP. Ia menyediakan satu siri API untuk melaksanakan fungsi ini, termasuk sokongan untuk protokol yang berbeza seperti TCP, UDP, HTTP, WebSocket, dll.
2. Persediaan
Sebelum anda mula, anda perlu pastikan anda telah memasang sambungan swole. Anda boleh menggunakan arahan berikut untuk memasang swoole dalam sistem Linux:
pecl install swoole
Atau dalam sistem Windows, anda boleh memuat turun pakej binari swoole dari tapak web rasmi dan mengekstraknya ke direktori sambungan PHP. Kemudian tambahkan konfigurasi berikut dalam fail php.ini:
extension=swoole
3. Buat pelayan WebSocket
Di bawah kami akan menggunakan contoh mudah untuk menunjukkan cara menggunakan sambungan swoole untuk mencipta pelayan WebSocket.
Mula-mula, kami mencipta fail server.php, memperkenalkan sambungan swoole dan memulakan pelayan WebSocket:
<?php $server = new SwooleWebSocketServer("0.0.0.0", 9501);
Kemudian, kami boleh menetapkan beberapa parameter pelayan, seperti bilangan proses pekerja dan port mendengar :
$server->set([ 'worker_num' => 4, 'max_request' => 10000, ]);
Seterusnya, kami mendengar acara terbuka sambungan WebSocket dan memprosesnya dengan sewajarnya:
$server->on('open', function ($server, $request) { echo "new connection: {$request->fd} "; });
Kemudian, kami mendengar acara mesej WebSocket dan memprosesnya dengan sewajarnya:
rreee$server->on('message', function ($server, $frame) { echo "received message: {$frame->data} "; // 可以在这里编写自定义的业务逻辑处理 });
$server->on('close', function ($server, $fd) { echo "connection closed: {$fd} "; });
$server->start();
pelayan
Kini kami telah mencipta Memandangkan kami mempunyai pelayan WebSocket, kami boleh menggunakan halaman HTML mudah untuk mengujinya.
Mula-mula, buat fail index.html dan tulis kod berikut:
php server.php
Ringkasan
Dengan menggunakan sambungan swoole, kami boleh mencipta pelayan WebSocket dalam PHP dengan mudah. Dalam pembangunan projek sebenar, kami boleh menambah baik dan mengoptimumkan lagi fungsi pelayan WebSocket mengikut keperluan khusus. Pada masa yang sama, swoole juga menyediakan lebih banyak fungsi dan API yang boleh digunakan untuk mengendalikan aplikasi rangkaian serentak, tak segerak dan berprestasi tinggi, membolehkan pembelajaran dan amalan yang lebih mendalam.
Atas ialah kandungan terperinci Pengenalan kepada pengaturcaraan berbilang benang PHP: Cipta pelayan WebSocket menggunakan sambungan swoole. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!