Guide de développement PHP Websocket : implémentation de la fonction de traduction en temps réel
Introduction :
Avec le développement d'Internet, la communication en temps réel devient de plus en plus importante dans divers scénarios d'application. En tant que protocole de communication émergent, Websocket offre une bonne prise en charge de la communication en temps réel. Cet article vous expliquera en détail comment utiliser PHP pour développer des applications Websocket et combinera la fonction de traduction en temps réel pour démontrer son application spécifique.
1. Qu'est-ce que le protocole Websocket ?
Le protocole Websocket est un protocole de communication full-duplex sur une seule connexion TCP. Par rapport au protocole HTTP traditionnel, Websocket présente les avantages suivants :
2. Préparatifs pour le développement d'applications Websocket avec PHP
Installer Composer
Exécutez la commande suivante dans le répertoire du projet pour installer :
$ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer
Installer la bibliothèque Rachet
Exécutez la commande suivante dans le répertoire du projet pour installer la bibliothèque Rachet :
$ composer require cboden/ratchet
3. Utilisez Rachet pour implémentez le serveur Websocket
Créez le fichier server.php
Créez le fichier server.php dans le répertoire racine du projet et écrivez le code suivant dans le fichier :
<?php require 'vendor/autoload.php'; use RatchetMessageComponentInterface; use RatchetConnectionInterface; use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; class Translator implements MessageComponentInterface { protected $clients; public function __construct() { $this->clients = new SplObjectStorage; } public function onOpen(ConnectionInterface $conn) { $this->clients->attach($conn); echo "New client connected: " . $conn->resourceId . " "; } public function onMessage(ConnectionInterface $from, $msg) { // 实现翻译功能,此处省略具体代码 $translatedMsg = translate($msg); foreach ($this->clients as $client) { $client->send($translatedMsg); } } public function onClose(ConnectionInterface $conn) { $this->clients->detach($conn); echo "Client disconnected: " . $conn->resourceId . " "; } public function onError(ConnectionInterface $conn, Exception $e) { echo "An error occurred: " . $e->getMessage() . " "; $conn->close(); } } $server = IoServer::factory( new HttpServer( new WsServer( new Translator() ) ), 8080 ); echo "Server is running... "; $server->run();
Démarrez le serveur Websocket
Exécutez la commande suivante dans le terminal pour démarrer le serveur Websocket :
$ php server.php
De cette façon, le serveur Websocket a été démarré avec succès.
4. Implémentez la page front-end
Créez le fichier index.html dans le répertoire racine du projet et écrivez le code suivant dans le fichier :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Websocket实时翻译</title> </head> <body> <input type="text" id="input"> <button onclick="send()">翻译</button> <br> <div id="output"></div> <script> var conn = new WebSocket('ws://localhost:8080'); conn.onopen = function(e) { console.log("Connection established!"); }; conn.onmessage = function(e) { var output = document.getElementById('output'); output.innerHTML += '<p>' + e.data + '</p>'; }; function send() { var input = document.getElementById('input'); conn.send(input.value); input.value = ''; } </script> </body> </html>
5. Exécutez l'exemple
Démarrez le serveur Websocket
. Exécutez la commande suivante dans la commande du terminal pour démarrer le serveur Websocket :
$ php server.php
Conclusion :
Cet article présente brièvement les étapes de base du développement de PHP Websocket et fournit des exemples de code combinés à la fonction de traduction en temps réel. J'espère qu'il vous sera utile d'apprendre et de développer des applications Websocket. En tant que technologie permettant de réaliser une communication en temps réel, Websocket offre un large éventail de perspectives d'application dans des scénarios d'application réels. Les lecteurs peuvent développer et transformer cet exemple pour obtenir davantage de fonctions de communication 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!