Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan sambungan Swoole PHP?

Bagaimana untuk menggunakan sambungan Swoole PHP?

WBOY
WBOYasal
2023-06-02 20:21:012149semak imbas

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.

  1. Gunakan arahan pecl untuk memasang:
pecl install swoole
  1. Kompil dan pasang secara manual:

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

  1. untuk memulakan pelayan TCP

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.

  1. Mulakan pelayan WebSocket

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.

  1. Hantar permintaan HTTP tak segerak

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn