Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah kaedah pelaksanaan teknologi tolak pelayan dalam PHP7.0?

Apakah kaedah pelaksanaan teknologi tolak pelayan dalam PHP7.0?

王林
王林asal
2023-05-27 21:10:40896semak imbas

Apakah kaedah pelaksanaan teknologi tolak sisi pelayan dalam PHP7.0?

Dengan pembangunan berterusan dan menaik taraf teknologi rangkaian, banyak tapak web dan aplikasi secara beransur-ansur mula mengguna pakai teknologi tolak sisi pelayan. Teknologi tolak pelayan ialah teknologi yang mewujudkan sambungan yang panjang antara klien dan pelayan dan menolak data kepada klien tepat pada masanya apabila pelayan mempunyai data baharu. Teknologi ini digunakan dalam banyak aplikasi masa nyata, seperti platform dagangan, permainan dalam talian, dsb.

Sebagai bahasa skrip yang popular, PHP juga mempunyai banyak kaedah pelaksanaan dalam teknologi tolak sisi pelayan. Artikel ini terutamanya memperkenalkan kaedah pelaksanaan dan prinsip teknologi tolak pelayan dalam PHP7.0.

  1. WebSocket

WebSocket ialah protokol HTML5 Dengan mewujudkan sambungan yang panjang antara pelanggan dan pelayan, data boleh dipindahkan ke pelayan tepat pada masanya. terdapat data baharu. WebSocket boleh merealisasikan komunikasi masa nyata dan sesuai untuk senario yang memerlukan komunikasi dua hala tepat pada masanya.

Dalam PHP7.0, anda boleh menggunakan perpustakaan Ratchet untuk melaksanakan WebSocket. Ratchet ialah perpustakaan sumber terbuka untuk PHP yang menyediakan pelaksanaan WebSocket yang boleh melaksanakan push pelayan dengan mudah.

Contoh kod:

require 'vendor/autoload.php';

use RatcheServerIoServer;
use RatchetHttpHttpServer;
use RatchetWebSocketWsServer;
use MyAppMyClass;

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new MyClass()
        )
    ),
    8080
);

$server->run();
  1. Acara Dihantar Pelayan (SSE)

Peristiwa Dihantar Pelayan (SSE) ialah teknologi tolak berdasarkan HTTP , yang menyokong pelayan untuk menolak data teks kepada klien. SSE menggunakan sambungan panjang HTTP untuk menolak data kepada klien apabila terdapat data baharu pada pelayan. SSE sesuai untuk senario komunikasi sehala, seperti pemberitahuan tolak web dan pemantauan data masa nyata.

Dalam PHP7.0, anda boleh menggunakan perpustakaan SSE untuk melaksanakan SSE. Pustaka SSE menyediakan fungsi asas tolak pelayan dan boleh digunakan dengan sangat mudah dalam aplikasi PHP.

Contoh kod:

require 'vendor/autoload.php';

use SpatieSseSse;

$sse = new Sse();

while(true) {
    // 从数据库中查询需要推送的数据
    $data = fetchData();

    $sse->sendEvent('message', $data);

    // 设置推送间隔
    sleep(1);
}
  1. Tinjauan Panjang

Tinjauan Panjang ialah teknologi yang mendapatkan data daripada pelayan melalui tinjauan pendapat. Apabila pelanggan menghantar permintaan kepada pelayan, pelayan tidak bertindak balas kepada permintaan dengan segera, tetapi menunggu data dikemas kini sebelum mengembalikan respons kepada klien. Selepas itu, permintaan seterusnya dimulakan semasa pelanggan menerima respons. Menggunakan Long Polling boleh mencapai kesan komunikasi masa nyata yang serupa dengan WebSocket.

Dalam PHP7.0, anda boleh menggunakan perpustakaan ReactPHP untuk melaksanakan Tinjauan Panjang. ReactPHP menggunakan model I/O tidak menyekat tak segerak untuk mengendalikan berbilang permintaan dengan cekap.

Contoh kod:

require 'vendor/autoload.php';

use ReactEventLoopFactory;
use ReactHttpResponse;
use ReactHttpServer;

$loop = Factory::create();

$server = new Server(function ($request, $response) use ($loop) {
    // 从服务端获取数据 
    $data = fetchData();

    // 发送响应到客户端
    $response->writeHead(200, array('Content-Type' => 'text/event-stream', 'Cache-Control' => 'no-cache', 'Connection' => 'keep-alive'));
    $response->write("data: ".$data."n");

    // 设置超时时间,关闭长连接
    $loop->addTimer(30, function() use ($response){
        $response->write("event: close".PHP_EOL.PHP_EOL); 
        $response->end();
    });
});

$server->listen(8080);

$loop->run();

Ringkasan

Teknologi tolak pelayan dalam PHP7.0 mempunyai tiga kaedah pelaksanaan: WebSocket, Acara Dihantar Pelayan dan Tinjauan Panjang. Teknologi yang berbeza sesuai untuk senario yang berbeza, dan pembangun boleh memilih teknologi yang sesuai mengikut keperluan mereka sendiri.

Atas ialah kandungan terperinci Apakah kaedah pelaksanaan teknologi tolak pelayan dalam PHP7.0?. 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