현재 위치: > 최신 기사 목록> PHP 실시간 주문 푸시 기능 아키텍처 설계 및 구현 분석

PHP 실시간 주문 푸시 기능 아키텍처 설계 및 구현 분석

M66 2025-06-17

PHP 실시간 주문 푸시 기능 아키텍처 설계 및 구현 분석

전자 상거래 산업의 빠른 발전으로 실시간 주문 푸시는 상인의 필수 기능 중 하나가되었습니다. 실시간 푸시로 가맹점은 새로운 주문 정보를 신속하게 받고 적시에 응답 할 수 있습니다. 이 기사는 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 로컬 호스트 : 8000

그런 다음 PHP 파일 Backend.php를 작성하고 다음 코드를 추가하여 WebSocket을 통해 판매자에게 주문 정보를 보냅니다.

<?php
function notify_order($order_data) {
    // aWebSocket연결하십시오WebSocket섬기는 사람
    $client = new WebSocketClient('ws://localhost:8080');

    // 주문 정보를 보냅니다WebSocket섬기는 사람
    $client-> send (json_encode ($ order_data));

    // webSocket Connection을 닫습니다 $ client-> close ();
}

// 샘플 주문 데이터 $ 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을 통해 주문 정보를 수신하고 페이지에 표시합니다. Merchant 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 서버가 새 주문을 받으면 주문 정보가 판매자쪽으로 푸시되고 판매자 측은 OnMessage 이벤트를 통해 주문 데이터를 처리합니다.

요약

실시간 주문 푸시 기능은 현대식 전자 상거래 시스템의 필수 부분이되었습니다. 이 기사는 WebSocket 프로토콜, 래칫 라이브러리 사용 및 PHP 백엔드와 판매자 측의 협력을 도입 하여이 기능을 구현하는 방법을 보여줍니다. 이 기사의 아키텍처 설계 및 코드 예제가 실제 개발에서 실시간 주문 푸시 기능을 신속하게 구현하고 시스템의 응답 속도 및 사용자 경험을 향상시키는 데 도움이되기를 바랍니다.