Tutoriel de développement PHP Websocket pour créer un système de négociation d'actions en temps réel

王林
Libérer: 2023-12-02 10:48:01
original
1267 Les gens l'ont consulté

PHP Websocket开发教程,构建实时股票交易系统

Tutoriel de développement PHP Websocket : Construire un système de négociation d'actions en temps réel

Introduction :

Avec le développement d'Internet, les performances en temps réel sont devenues une exigence importante pour de nombreuses applications. En tant que système impliquant une grande quantité de données en temps réel, le système de négociation d'actions doit être capable d'afficher aux utilisateurs les modifications des cours des actions et les mises à jour des données de négociation en temps réel. Dans le modèle de développement traditionnel, la communication entre le front-end et le back-end se fait en envoyant continuellement des requêtes et en recevant des réponses. Cependant, cette méthode présente un certain retard et ne peut pas répondre aux exigences du temps réel.

Afin de résoudre ce problème, la technologie WebSocket a vu le jour. WebSocket est un protocole qui établit une connexion persistante entre un client et un serveur, permettant une communication bidirectionnelle en temps réel. Dans cet article, nous utiliserons un exemple pour présenter comment utiliser PHP WebSocket pour développer un système de négociation d'actions en temps réel.

Étape 1 : Créer un environnement de base

Tout d'abord, nous devons créer un environnement de développement de base. Dans cet exemple, nous utiliserons PHP comme langage backend et Composer pour gérer les bibliothèques de dépendances de PHP. Veuillez vous assurer que PHP et Composer sont installés.

Étape 2 : Présentez la bibliothèque de dépendances WebSocket

WebSocket est un protocole standardisé et PHP lui-même ne fournit pas de support WebSocket. Par conséquent, nous devons introduire une bibliothèque tierce pour implémenter les fonctions WebSocket. Dans cet exemple, nous utiliserons la bibliothèque Ratchet. Dans le répertoire de votre projet, exécutez la commande suivante pour installer Ratchet :

composer require cboden/ratchet
Copier après la connexion

Étape 3 : Écrivez le code côté serveur WebSocket

Nous écrivons d'abord un code côté serveur WebSocket. Créez un fichier nommé Server.php et entrez le code suivant : Server.php 的文件,输入以下代码:

<?php
require 'vendor/autoload.php';

use RatchetMessageComponentInterface;
use RatchetConnectionInterface;

class Server implements MessageComponentInterface {
    protected $clients;

    public function __construct() {
        $this->clients = new SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
    }

    public function onMessage(ConnectionInterface $from, $msg) {
        foreach ($this->clients as $client) {
            $client->send($msg);
        }
    }

    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
    }

    public function onError(ConnectionInterface $conn, Exception $e) {
        $conn->close();
    }
}

$webSock = new ReactSocketServer('0.0.0.0:8080', $loop);
$webServer = new RatchetServerIoServer(
    new RatchetHttpHttpServer(
        new RatchetWebSocketWsServer(
            new Server()
        )
    ),
    $webSock
);

$loop->run();
Copier après la connexion

上面的代码中,我们首先引入了必要的依赖库和命名空间。然后我们定义了一个名为 Server 的类,该类实现了 Ratchet 的 MessageComponentInterface 接口。在 Server 类中,我们定义了几个事件回调函数,分别对应 WebSocket 的几个不同的状态。

最后,我们使用 Ratchet 的各种组件和类来建立 WebSocket 服务器,并启动服务器。

步骤四:编写前端代码

在本例中,我们使用 JavaScript 来编写客户端的代码。创建一个名为 index.html 的文件,输入以下代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实时股票交易系统</title>
</head>
<body>
    <div id="stock"></div>

    <script type="text/javascript">
        var socket = new WebSocket('ws://localhost:8080');

        socket.onmessage = function(event) {
            var stockData = JSON.parse(event.data);
            var stockElement = document.getElementById('stock');
            stockElement.innerHTML = "股票名称:" + stockData.name + "<br>股票价格:" + stockData.price;
        };
    </script>
</body>
</html>
Copier après la connexion

在上面的代码中,我们首先创建了一个 WebSocket 对象,指定了服务器的地址。然后我们定义了一个 onmessage 事件处理函数,当服务器发送消息时被调用。在这个处理函数中,我们解析服务器发送过来的 JSON 格式的股票数据,并将其展示在页面上。

步骤五:启动服务器

现在,我们可以使用命令行来启动 WebSocket 服务器。在项目目录下,执行以下命令:

php Server.php
Copier après la connexion

步骤六:测试系统

在浏览器中打开 index.html 文件,你将看到一个空白的页面。如果一切正常,当服务器发送股票数据时,页面将实时更新股票的名称和价格。

你可以在服务器端的 onMessagerrreee

Dans le code ci-dessus, nous avons d'abord introduit les bibliothèques et espaces de noms dépendants nécessaires. Nous définissons ensuite une classe appelée Server qui implémente l'interface MessageComponentInterface de Ratchet. Dans la classe Server, nous définissons plusieurs fonctions de rappel d'événements, qui correspondent à plusieurs états différents de WebSocket.

Enfin, nous utilisons les différents composants et classes de Ratchet pour construire le serveur WebSocket et démarrer le serveur.

Étape 4 : Écrire du code front-end🎜🎜Dans cet exemple, nous utilisons JavaScript pour écrire du code côté client. Créez un fichier nommé index.html et entrez le code suivant : 🎜rrreee🎜Dans le code ci-dessus, nous créons d'abord un objet WebSocket et spécifions l'adresse du serveur. Ensuite, nous définissons un gestionnaire d'événements onmessage qui est appelé lorsque le serveur envoie un message. Dans cette fonction de traitement, nous analysons les données boursières au format JSON envoyées par le serveur et les affichons sur la page. 🎜🎜Étape 5 : Démarrez le serveur🎜🎜Maintenant, nous pouvons utiliser la ligne de commande pour démarrer le serveur WebSocket. Dans le répertoire du projet, exécutez la commande suivante : 🎜rrreee🎜Étape 6 : Testez le système🎜🎜Ouvrez le fichier index.html dans le navigateur, vous verrez une page vierge. Si tout fonctionne correctement, lorsque le serveur envoie les données boursières, la page sera mise à jour en temps réel avec le nom et le prix du titre. 🎜🎜Vous pouvez modifier le contenu du message envoyé dans la méthode onMessage côté serveur pour simuler des mises à jour des données boursières en temps réel. 🎜🎜Conclusion : 🎜🎜Grâce à cet exemple, nous avons appris à utiliser PHP WebSocket pour développer un système de négociation d'actions en temps réel. La technologie WebSocket peut bien répondre aux exigences en temps réel, rendant la communication entre le front-end et le back-end plus efficace et en temps réel. Dans les applications réelles, nous pouvons étendre davantage ce système, par exemple en ajoutant l'authentification des utilisateurs, le stockage de données et d'autres fonctions. J'espère que cet article vous sera utile, merci d'avoir lu ! 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal