ホームページ >バックエンド開発 >PHPチュートリアル >リアルタイム エクスプレス クエリ機能を実装するための PHP Websocket 開発ガイド

リアルタイム エクスプレス クエリ機能を実装するための PHP Websocket 開発ガイド

WBOY
WBOYオリジナル
2023-12-02 09:55:081368ブラウズ

PHP Websocket开发指南,实现实时快递查询功能

PHP Websocket 開発ガイドでは、リアルタイムのエクスプレス クエリ機能を実装するには、特定のコード例が必要です

はじめに:
インターネットの継続的な発展に伴い、さらにWeb サイトとアプリケーションには、リアルタイムのデータ更新と通信機能を実装する必要があります。 Websocket は、リアルタイム通信テクノロジとして、さまざまな Web 開発シナリオで徐々に広く使用されるようになりました。この記事では、PHP を使用してリアルタイム エクスプレス クエリ機能を実装する Websocket を開発する方法と、具体的なコード例を紹介します。

1. Websocket とは何ですか?
Websocket は、クライアントとサーバーの間に永続的な接続を確立して、リアルタイムの双方向データ送信を実現できる全二重通信プロトコルです。 Websocket を介して、サーバーはクライアントに頻繁にリクエストを送信することなく、アクティブにデータをクライアントにプッシュできます。

2.Websocket を使用する理由は何ですか?
従来の HTTP プロトコルを使用すると、クライアントはサーバーから更新データを取得するためにリクエストを継続的に送信する必要があります。これにより、大量のリクエストが頻繁にデータを送信し、帯域幅とリソースを占有し、サーバーへの負荷も増大します。サーバ。 Websocket を使用すると、リクエストの数が減り、データのリアルタイム性が向上し、リソース消費が削減されるため、リアルタイム通信には理想的な選択肢となります。

3. PHP を使用して Websocket を開発するにはどうすればよいですか?

  1. PHP の swoole 拡張機能をインストールする
    Websocket 開発では、PHP の swoole 拡張機能を使用できます。まず、対応する swoole 拡張機能がインストールされていることを確認します。次のコマンドを実行してインストールできます:

    pecl install swoole
  2. サーバーサイド コードの記述
    PHP を使用して Websocket を開発するには、次のコマンドを実行する必要があります。サーバーサイドのコードを書きます。サーバー側コードの例を次に示します:
<?php
$server = new SwooleWebSocketServer("0.0.0.0", 9502);

$server->on('open', function (SwooleWebSocketServer $server, $request) {
    echo "new connection open: {$request->fd}
";
});

$server->on('message', function (SwooleWebSocketServer $server, $frame) {
    echo "received message: {$frame->data}
";
    $server->push($frame->fd, json_encode(['message' => 'Hello']));
});

$server->on('close', function ($ser, $fd) {
    echo "connection close: {$fd}
";
});

$server->start();
  1. クライアント コードの記述
    Websocket のクライアント コードは比較的単純です。以下は、Websocket クライアント コードの簡単な例です。
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Websocket Client</title>
</head>
<body>
<script>
    var ws = new WebSocket('ws://localhost:9502');
    ws.onopen = function() {
        console.log('Connected');
    };
    ws.onmessage = function(event) {
        var data = JSON.parse(event.data);
        console.log('Received message:', data.message);
    };
    ws.onclose = function() {
        console.log('Connection closed');
    };
</script>
</body>
</html>

4. リアルタイム高速クエリ機能
Websocket により、リアルタイム高速クエリ機能を実現できます。ユーザーが速達をクエリするリクエストを送信すると、サーバーはリアルタイムで速達情報を取得し、Websocket を通じてクエリ結果をクライアントにプッシュできます。以下は、エクスプレス クエリ機能を実装するサンプル コードです:

<?php
// ... 服务器端代码 ...

$server->on('message', function (SwooleWebSocketServer $server, $frame) {
    $trackingNumber = $frame->data; // 获取客户端提交的快递单号
    $expressInfo = fetchExpressInfo($trackingNumber); // 查询快递信息
    $server->push($frame->fd, json_encode($expressInfo));
});

// ... 其他代码 ...

function fetchExpressInfo($trackingNumber) {
    // 调用相关的API或查询数据库获取快递信息
    // 实际情况根据具体需求进行实现
    return [
        'trackingNumber' => $trackingNumber,
        'info' => 'xxxx',
    ];
}

この方法では、ユーザーがクライアントでエクスプレス クエリ リクエストを送信した後、サーバーはリアルタイムでエクスプレス情報を取得し、クエリをプッシュします。結果をクライアントに提供し、リアルタイムのエクスプレスクエリ機能を実現します。

概要:
この記事では、PHP Websocket 開発ガイドと、PHP を使用して Websocket を開発する方法を紹介します。コード例には、リアルタイム エクスプレス クエリ機能が実装されています。 Websocket 開発テクノロジーを習得することで、よりリアルタイムな通信機能を実現し、ユーザー エクスペリエンスを向上させ、アプリケーションのリアルタイム性を高めることができます。読者のお役に立てば幸いです。

以上がリアルタイム エクスプレス クエリ機能を実装するための PHP Websocket 開発ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。