現在の位置: ホーム> 最新記事一覧> PHPリアルタイム注文プッシュ機能アーキテクチャの設計と実装分析

PHPリアルタイム注文プッシュ機能アーキテクチャの設計と実装分析

M66 2025-06-17

PHPリアルタイム注文プッシュ機能アーキテクチャの設計と実装分析

eコマース業界の急速な発展に伴い、リアルタイムの注文プッシュは、商人の不可欠な機能の1つになりました。リアルタイムのプッシュにより、商人は新しい注文情報を迅速に受け取り、タイムリーに応答できます。この記事では、PHPを使用して、アーキテクチャデザインからコード実装までリアルタイム注文プッシュ機能を構築する方法を包括的に分析します。

建築デザインのアイデア

リアルタイムの注文プッシュの中核は、新規注文の商人にリアルタイムで通知できるようにすることです。この要件を満たすために、クライアントとサーバーの間に持続的な接続を確立できるWebsocketプロトコルを採用することができ、情報を即座にプッシュできるようにします。

これがシンプルな建築設計です:

+---------------------------------+
|システム| |商人側|
+---------------------------------+
        | |
        | |
+---------------------------------+
| WebSocket Server | | WebSocket |
+---------------------------------+

このアーキテクチャでは、注文システムが新しい注文を受信した後、注文データをWebSocketサーバーに送信します。 WebSocketサーバーは、注文情報をサーバーに接続されたマーチャントにプッシュします。商人が注文情報を受け取った後、必要に応じてさらに処理できます。

プロジェクト構築

開発者がこの機能を実装する方法をよりよく理解できるようにするために、Ratchetを使用してWebSocketサーバーを構築し、PHPバックエンドサーバーを使用して注文データを送信します。プロジェクトを構築するための手順は次のとおりです。

1。WebSocketサーバー

まず、WebSocketサーバーを構築する必要があります。このタスクは、オープンソースライブラリラチェットを使用して実現できます。プロジェクトルートディレクトリに作曲家を介してラチェットを最初にインストールします。

作曲家はcboden/ラチェットを必要とします

次に、PHPファイルwebsocket_server.phpを作成し、次のコードを書きます。

<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;

require 'vendor/autoload.php';

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new YourWebSocketServer() // ここYourWebSocketServerそれは自分で行われていますWebSocketサーバークラス
        )
    ),
    8080
);

$server->歩くる();

2。PHPバックエンドサーバー

WebSocketサーバーと通信するには、PHPバックエンドサーバーが必要です。 PHPビルトインサーバーまたはPHP対応サーバー(ApacheやNginxなど)を使用できます。 PHPビルトインサーバーの使用を開始する方法は次のとおりです。

php -s localhost:8000

次に、PHPファイルBackEnd.phpを作成し、次のコードを追加して、WebSocketを介して商人に注文情報を送信します。

<?php
function notify_order($order_data) {
    // aを作成しますWebSocketに接続しますWebSocketサーバ
    $client = new WebSocketClient('ws://localhost:8080');

    // 注文情報をに送信しますWebSocketサーバ
    $client-> send(json_encode($ order_data));

    // close websocket Connection $ client-> close();
}

// sample order data $ order_data = [
    &#39;order_id&#39; => 123456、
    &#39;Customer_name&#39; => &#39;Zhang San&#39;、
    &#39;order_amount&#39; => 100.00
];

notify_order($ order_data);

マーチャントサイドの実装

商人はWebSocketを介して注文情報を受け取り、ページに表示します。ここに、販売者のHTMLとJavaScriptコードの例があります。

<!DOCTYPE html>
<html>
<head>
    <script>
        var ws = new WebSocket('ws://localhost:8080');

        ws.onopen = function() {
            console.log('接続に正常に');
        };

        ws.onmessage = function(e) {
            var order_data = JSON.parse(e.data);
            console.log('新しい注文を受けました:', order_data);
            // ページ上の注文情報を更新します
            // ...
        };

        ws.onclose = function() {
            console.log('接続が閉じます');
        };
    </script>
</head>
<body>
    <!-- ページコンテンツ -->
</body>
</html>

マーチャント側では、WebSocket接続が確立された後、WebSocketサーバーが新しい注文を受信すると、注文情報がMerchant側にプッシュされ、Merchant側がOnmessageイベントを通じて注文データを処理します。

要約します

リアルタイム注文プッシュ機能は、最新のeコマースシステムの不可欠な部分になりました。この記事では、WebSocketプロトコル、ラチェットライブラリの使用、およびPHPバックエンドとマーチャントサイドの間の協力を導入することにより、この機能を実装する方法を示しています。この記事のアーキテクチャの設計とコードの例が、実際の開発にリアルタイムの注文プッシュ機能をすばやく実装し、システムの応答速度とユーザーエクスペリエンスを改善するのに役立つことを願っています。