Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah pelayar mengakses swool

Bagaimanakah pelayar mengakses swool

PHPz
PHPzasal
2023-03-29 11:28:45419semak imbas

Cara penyemak imbas mengakses swoole

Kata Pengantar

Swoole ialah rangka kerja komunikasi rangkaian berprestasi tinggi, tak segerak, yang ditulis dalam bahasa PHP. Swoole boleh digunakan untuk membina aplikasi rangkaian yang sangat serentak dengan mudah, terutamanya sesuai untuk pembangunan WebSocket, HTTP, TCP, UDP dan protokol lain.

Dalam proses menggunakan Swoole, kadangkala anda perlu mengakses aplikasi rangkaian yang ditulis oleh Swoole melalui pelayar. Artikel ini akan memperkenalkan cara penyemak imbas mengakses Swoole untuk memudahkan penyahpepijatan dan ujian semasa pembangunan.

1. Protokol HTTP

Mula-mula kita perlu memahami protokol HTTP. HTTP (Hypertext Transfer Protocol) ialah protokol lapisan aplikasi untuk menghantar dokumen hipermedia, biasanya berdasarkan protokol TCP.

Protokol HTTP menggunakan mod pelayan-pelanggan Pelanggan memulakan permintaan dan pelayan mengembalikan respons. Permintaan HTTP terdiri daripada pengepala permintaan dan badan permintaan, dan respons terdiri daripada pengepala respons dan badan respons. Pengepala permintaan dan pengepala respons dinyatakan dalam bentuk pasangan nilai kunci, contohnya:

Pengepala permintaan:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Pengepala respons:

HTTP/1.1 200 OK
Date: Tue, 22 Jun 2021 06:59:43 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Mon, 21 Jun 2021 01:53:04 GMT
ETag: "2eab-5c4965a6870bb"
Accept-Ranges: bytes
Content-Length: 11947
Vary: Accept-Encoding
Content-Type: text/html

2 . Swoole HTTP Server

Swoole menyediakan pelayan HTTP yang boleh membina aplikasi rangkaian dengan mudah berdasarkan protokol HTTP. Menggunakan pelayan HTTP Swoole membolehkan penyemak imbas mengakses aplikasi web yang ditulis dalam Swoole. Berikut ialah contoh mudah:

<?php

$http = new Swoole\Http\Server("0.0.0.0", 9501);

$http->on("start", function ($server) {
    echo "Swoole http server is started at http://127.0.0.1:9501\n";
});

$http->on("request", function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello, World!\n");
});

$http->start();

Dalam contoh ini, kami mencipta pelayan HTTP Swoole dan mendengar pada port 9501. Apabila penyemak imbas mengakses pelayan ini, rentetan teks ringkas "Hello, World!"

3. Akses pelayan HTTP Swoole

Seterusnya kita akan membincangkan cara mengakses pelayan HTTP Swoole dalam penyemak imbas. Dengan mengandaikan bahawa pelayan HTTP Swoole sedang berjalan pada port 9501 pada hos tempatan, kami boleh mengakses pelayan menggunakan URL berikut:

http://127.0.0.1:9501/

Masukkan URL dalam penyemak imbas dan anda akan melihat rentetan teks yang dikembalikan oleh pelayar "Helo, Dunia!".

Dalam pelayan HTTP Swoole, kita boleh menggunakan objek $request untuk mendapatkan maklumat permintaan yang dihantar oleh klien, contohnya:

$http->on("request", function ($request, $response) {
    $message = "Method: " . $request->server["request_method"] . "\n";
    $message .= "URI: " . $request->server["request_uri"] . "\n";
    $message .= "Headers: " . json_encode($request->header) . "\n";
    $message .= "Content: " . $request->rawContent() . "\n";
    $response->header("Content-Type", "text/plain");
    $response->end($message);
});

Contoh ini menggunakan objek $request untuk mendapatkan maklumat permintaan, termasuk kaedah permintaan , URI, pengepala permintaan dan badan permintaan. Dengan cara ini, adalah mudah untuk memahami maklumat permintaan yang dihantar oleh penyemak imbas.

4. Protokol WebSocket

Selain protokol HTTP, Swoole juga menyokong protokol WebSocket. Protokol WebSocket ialah protokol berdasarkan protokol TCP, yang boleh mencapai komunikasi dua hala dan sangat sesuai untuk senario komunikasi masa nyata. Swoole menyediakan pelayan WebSocket untuk melaksanakan fungsi WebSocket dengan mudah dalam PHP.

Berikut ialah contoh mudah:

<?php

$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);

$server->on("start", function ($server) {
    echo "Swoole WebSocket server is started at ws://127.0.0.1:9501\n";
});

$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    echo "WebSocket connection opened: {$request->fd}\n";
});

$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
    echo "Received message: {$frame->data}\n";
    $server->push($frame->fd, "Received message: {$frame->data}");
});

$server->on('close', function (Swoole\WebSocket\Server $server, $fd) {
    echo "WebSocket connection closed: {$fd}\n";
});

$server->start();

Dalam contoh ini, kami mencipta pelayan Swoole WebSocket dan mendengar pada port 9501. Apabila pelanggan menghantar mesej, pelayan mengembalikan mesej tidak berubah kepada klien.

5 Akses pelayan Swoole WebSocket

Mengakses pelayan Swoole WebSocket dalam penyemak imbas agak rumit. Memandangkan protokol WebSocket tidak berdasarkan protokol HTTP, kami tidak boleh menggunakan URL seperti mengakses pelayan HTTP.

Kami boleh berkomunikasi dengan pelayan Swoole WebSocket dalam penyemak imbas menggunakan API WebSocket JavaScript. Berikut ialah contoh berkomunikasi menggunakan JavaScript WebSocket API:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>WebSocket Test</title>
</head>
<body>
    <input type="text" id="message" placeholder="Type your message here">
    <button onclick="sendMessage()">Send Message</button>
    <ul id="messages"></ul>
    <script>
        var socket = new WebSocket("ws://127.0.0.1:9501/");

        socket.onopen = function(event) {
            console.log("WebSocket is open now.");
        };

        socket.onmessage = function(event) {
            var messages = document.getElementById("messages");
            var message = document.createElement("li");
            var content = document.createTextNode(event.data);
            message.appendChild(content);
            messages.appendChild(message);
        };

        function sendMessage() {
            var input = document.getElementById("message");
            var message = input.value;
            socket.send(message);
            input.value = "";
        }
    </script>
</body>
</html>

Contoh ini mencipta objek WebSocket dan menyambung ke pelayan Swoole WebSocket. Apabila pengguna memasukkan mesej dalam kotak teks dan mengklik butang Hantar, kod JavaScript menghantar mesej ke pelayan. Selepas menerima mesej, pelayan mengembalikan mesej kepada klien sebagaimana adanya, dan klien memaparkan mesej dalam senarai mesej.

6. Ringkasan

Artikel ini memperkenalkan cara penyemak imbas mengakses aplikasi rangkaian yang ditulis oleh Swoole, termasuk protokol HTTP dan WebSocket. Melalui pengenalan artikel ini, saya percaya anda telah menguasai kemahiran cara menyahpepijat dan menguji aplikasi Swoole dalam penyemak imbas.

Atas ialah kandungan terperinci Bagaimanakah pelayar mengakses swool. 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