Pelanjutan Swoole PHP ialah rangka kerja komunikasi rangkaian tak segerak berprestasi tinggi. Ia boleh digunakan untuk membina pelayan web dan aplikasi klien berdasarkan protokol seperti TCP, UDP, soket Unix, dll. Sambungan swoole kini digunakan secara meluas dalam pelayan permainan, aplikasi sembang, tolak data masa nyata dan medan lain. Artikel ini akan memperkenalkan cara menggunakan sambungan Swoole bagi PHP.
1. Pasang sambungan Swoole
Sebelum menggunakan sambungan Swoole, anda perlu memasang sambungan terlebih dahulu. Ia boleh dipasang dalam dua cara berikut.
pecl install swoole
Muat turun kod sumber daripada Swoole repositori GitHub sambungan :
git clone https://github.com/swoole/swoole-src.git
Nyahzip kod sumber dan masukkan direktori:
tar -zxvf swoole-src.tar.gz cd swoole-src
Laksanakan arahan berikut:
phpize ./configure make make install
2. Gunakan sambungan Swoole
Berikut ialah contoh kod untuk memulakan pelayan TCP mudah:
$server = new SwooleServer("127.0.0.1", 9501); //监听连接进入事件 $server->on('connect', function ($server, $fd) { echo "Client: {$fd} Connect. "; }); //监听数据接收事件 $server->on('receive', function ($server, $fd, $from_id, $data) { $server->send($fd, "Server: {$data}"); }); //监听连接关闭事件 $server->on('close', function ($server, $fd) { echo "Client: {$fd} Close. "; }); //启动服务器 $server->start();
Dalam kod di atas, kami telah mencipta pelayan TCP mendengar pada port 9501 daripada 127.0.0.1. Apabila klien mewujudkan sambungan, peristiwa kemasukan sambungan dicetuskan Apabila pelayan menerima data, peristiwa menerima data dicetuskan dan data yang diterima dihantar semula kepada klien secara utuh. Apabila pelanggan menutup sambungan, acara penutupan sambungan dicetuskan.
Berikut ialah contoh kod untuk memulakan pelayan WebSocket mudah:
$server = new SwooleWebSocketServer("127.0.0.1", 9501); //监听WebSocket连接打开事件 $server->on('open', function ($server, $request) { echo "Client: {$request->fd} Connect. "; }); //监听WebSocket消息事件 $server->on('message', function ($server, $frame) { $server->push($frame->fd, "Server: {$frame->data}"); }); //监听WebSocket连接关闭事件 $server->on('close', function ($server, $fd) { echo "Client: {$fd} Close. "; }); //启动服务器 $server->start();
Dalam kod di atas, kami mencipta WebSocket pelayan, mendengar pada port 9501 daripada 127.0.0.1. Apabila klien WebSocket menyambung ke pelayan, acara buka sambungan dicetuskan. Apabila klien WebSocket menghantar mesej kepada pelayan, peristiwa mesej dicetuskan dan mesej yang diterima dihantar semula kepada klien secara utuh. Apabila klien WebSocket menutup sambungan, acara penutupan sambungan dicetuskan.
Berikut ialah contoh kod untuk menghantar permintaan HTTP tak segerak:
$client = new SwooleCoroutineHttpClient('www.baidu.com', 80); $client->set(['timeout' => 1]); $client->setHeaders([ 'Host' => "www.baidu.com", "User-Agent" => 'Chrome/49.0.2587.3', 'Accept' => 'text/html,application/xhtml+xml,application/xml', 'Accept-Encoding' => 'gzip', ]); $client->set(['timeout' => 1]); $client->get('/index.php'); echo $client->body;
Dalam kod di atas, kami mencipta HTTP Pelanggan secara tidak segerak menghantar permintaan GET ke laluan /index.php www.baidu.com, mendapatkan respons dan mengeluarkan kandungan respons.
Ringkasan:
Artikel ini memperkenalkan cara menggunakan sambungan Swoole PHP. Melalui sambungan Swoole, kami boleh mencapai komunikasi rangkaian tak segerak berprestasi tinggi dan membina pelbagai aplikasi rangkaian biasa. Perlu diingat bahawa sambungan Swoole memerlukan PHP7 atau ke atas Selain itu, apabila menggunakan sambungan Swoole, anda perlu memberi perhatian kepada ciri-ciri konkurensinya yang tinggi untuk mengelakkan menjejaskan kestabilan aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan sambungan Swoole PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!