Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata

Cara menggunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata

王林
王林asal
2023-06-17 13:04:401494semak imbas

Dengan perkembangan teknologi Internet, aplikasi Web masa nyata telah menjadi kaedah pembangunan yang semakin popular. WebSocket, sebagai protokol komunikasi dupleks penuh, telah menjadi cara penting untuk melaksanakan aplikasi Web masa nyata PHP juga menyediakan API WebSocket untuk memudahkan penggunaan pembangun. Artikel ini akan memperkenalkan cara menggunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata.

1. Gambaran Keseluruhan WebSocket

WebSocket ialah protokol yang menyediakan komunikasi dupleks penuh melalui sambungan TCP tunggal. Ia membolehkan aplikasi web menyampaikan data masa nyata antara klien dan pelayan. . Berbanding dengan protokol HTTP, WebSocket mempunyai kependaman yang lebih rendah dan lebih sedikit jabat tangan dalam menghantar data, membolehkan lebih banyak aplikasi web masa nyata.

2. Gunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata

  1. Pasang WebSocket

PHP WebSocket adalah berdasarkan ReactPHP, jadi anda perlu untuk memasang ReactPHP dahulu :

composer require react/socket:^1.11.0 react/event-loop:^1.1.0
  1. Buat perkhidmatan WebSocket

Berikut ialah kod perkhidmatan PHP WebSocket yang mudah:

use ReactSocketConnectionInterface;
use ReactSocketServer;

require __DIR__ . '/vendor/autoload.php';

$loop = ReactEventLoopFactory::create();
$socket = new Server('localhost:8080', $loop);

$clients = new SplObjectStorage();
$socket->on('connection', function (ConnectionInterface $conn) use ($clients) {
    $clients->attach($conn);
    $conn->on('data', function ($data) use ($clients, $conn) {
        foreach ($clients as $client) {
            if ($conn !== $client) {
                $client->write($data);
            }
        }
    });
    $conn->on('close', function () use ($clients, $conn) {
        $clients->detach($conn);
    });
});

$loop->run();

Kod ini mencipta perkhidmatan WebSocket yang mendengar ini Port mesin 8080. Apabila pelanggan menyambung, simpan objek klien ke objek SplObjectStorage. Apabila terdapat penghantaran data, hantar data kepada pelanggan lain kecuali pengirim. Apabila pelanggan memutuskan sambungan, padamkan objek klien daripada SplObjectStorage.

  1. Jalankan perkhidmatan WebSocket

Simpan kod di atas sebagai fail server.php dan jalankan arahan php server.php untuk memulakan perkhidmatan WebSocket. Pada ketika ini, perkhidmatan WebSocket sudah berjalan pada port tempatan 8080 dan boleh menerima sambungan klien.

  1. Buat klien WebSocket

Berikut ialah kod klien PHP WebSocket yang mudah:

use ReactEventLoopFactory;
use ReactSocketConnector;
use ReactSocketConnectionInterface;

require __DIR__ . '/vendor/autoload.php';

$loop = Factory::create();
$connector = new Connector($loop);

$connector->connect('tcp://127.0.0.1:8080')->then(function (ConnectionInterface $conn) use ($loop) {
    $conn->on('data', function ($data) {
        echo $data;
    });
    $loop->addReadStream(STDIN, function () use ($conn) {
        $line = fgets(STDIN);
        $conn->write($line);
    });
}, function (Exception $e) {
    echo 'Could not connect: ' . $e->getMessage() . PHP_EOL;
});

$loop->run();

Kod ini mencipta klien WebSocket, sambung ke port 8080 daripada mesin ini. Apabila terdapat penghantaran data, data dikeluarkan ke konsol. Apabila membaca input konsol, hantarkan input ke pelayan WebSocket.

  1. Jalankan klien WebSocket

Simpan kod di atas sebagai fail client.php dan jalankan arahan php client.php untuk memulakan klien WebSocket. Pada ketika ini, klien WebSocket telah disambungkan ke pelayan WebSocket tempatan.

  1. Uji komunikasi WebSocket

Masukkan data dalam konsol, data akan dihantar ke pelayan WebSocket, dan pelayan akan menghantar semula data kepada orang lain kecuali pengirim pelanggan. Kami boleh membuka berbilang konsol dan menjalankan php client.php untuk menguji kesan komunikasi masa nyata.

3. Ringkasan

WebSocket API menyediakan cara untuk PHP melaksanakan WebSocket, yang boleh melaksanakan aplikasi Web masa nyata dengan mudah. Artikel ini memperkenalkan cara menggunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata Ia merangkumi gambaran keseluruhan WebSocket, mencipta perkhidmatan WebSocket, mencipta klien WebSocket dan menguji komunikasi WebSocket.

Atas ialah kandungan terperinci Cara menggunakan API WebSocket dalam PHP untuk melaksanakan aplikasi web masa nyata. 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