Maison > Article > développement back-end > Analyse de la conception architecturale de la fonction de commande de commandes en temps réel à l'aide de PHP
Analyse de la conception architecturale de la fonction de poussée des commandes en temps réel à l'aide de PHP
Avec le développement rapide de l'industrie du commerce électronique, la fonction de poussée des commandes en temps réel est devenue un élément indispensable pour de nombreux commerçants. Cette fonction peut transmettre de nouvelles informations sur les commandes aux commerçants en temps réel, leur permettant de répondre et de traiter les commandes rapidement. Dans cet article, nous explorerons comment utiliser PHP pour implémenter cette fonction et fournirons des exemples de conception architecturale et de code correspondants.
Ce qui suit est un schéma de conception d'architecture de base :
+-----------------+ +--------------+ | 订单系统 | | 商家端 | +-----------------+ +--------------+ | | | | +-----------------+ +--------------+ | WebSocket 服务器 | | WebSocket | +-----------------+ +--------------+
Lorsque le système de commande reçoit une nouvelle commande, il envoie les informations de commande au serveur WebSocket. Le serveur WebSocket transmet les informations de commande au commerçant connecté au serveur. Le commerçant peut traiter davantage les informations de commande reçues.
a. Serveur WebSocket :
Nous pouvons utiliser Ratchet pour créer un serveur WebSocket simple. Tout d'abord, installez Ratchet en utilisant la commande suivante dans la ligne de commande :
composer require cboden/ratchet
Ensuite, créez un nouveau fichier PHP websocket_server.php et écrivez le code suivant :
<?php use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; require 'vendor/autoload.php'; $server = IoServer::factory( new HttpServer( new WsServer( new YourWebSocketServer() // 这里的YourWebSocketServer是你自己实现的WebSocket服务器类 ) ), 8080 ); $server->run();
b PHP Backend Server :
Nous pouvons utiliser n'importe quel serveur prenant en charge PHP. , comme Apache ou Nginx. Dans cet article, nous utiliserons le serveur intégré de PHP comme exemple.
Utilisez la commande suivante dans la ligne de commande pour démarrer le serveur PHP intégré :
php -S localhost:8000
Ensuite, créez un nouveau fichier PHP backend.php dans le répertoire du projet et écrivez le code suivant :
<?php function notify_order($order_data) { // 创建一个WebSocket连接到WebSocket服务器 $client = new WebSocketClient('ws://localhost:8080'); // 将订单信息发送给WebSocket服务器 $client->send(json_encode($order_data)); // 关闭WebSocket连接 $client->close(); } // 接收到订单信息时调用 $order_data = [ 'order_id' => 123456, 'customer_name' => '张三', 'order_amount' => 100.00 ]; notify_order($order_data);
Dans le fichier HTML côté marchand, vous pouvez utiliser le code suivant pour recevoir le push de commande :
<!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>
Le côté marchand se connecte au serveur WebSocket via WebSocket Lorsqu'une nouvelle commande est poussée, le serveur WebSocket enverra le. informations de commande au côté commerçant. Le commerçant gère les informations de commande reçues via l'événement onmessage et peut mettre à jour les informations de commande sur la page si nécessaire.
Résumé :
La fonction de poussée des commandes en temps réel est une partie très importante de l'industrie du commerce électronique. En utilisant le protocole WebSocket et PHP, nous pouvons facilement implémenter cette fonctionnalité. Cet article présente la méthode d'utilisation de Ratchet pour créer un serveur WebSocket et transmettre les informations de commande au serveur WebSocket via le serveur principal PHP. Il fournit également un exemple de code JavaScript côté commerçant. J'espère que cet article vous sera utile lors de la mise en œuvre de la fonction de transmission de commandes en temps réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!