Maison >développement back-end >tutoriel php >Comment utiliser l'API WebSocket en PHP pour envoyer des messages en temps réel

Comment utiliser l'API WebSocket en PHP pour envoyer des messages en temps réel

PHPz
PHPzoriginal
2023-06-17 10:37:561300parcourir

Avec le développement continu de la technologie, le push de messages en temps réel est devenu l'une des fonctions essentielles des applications Web. En tant que technologie émergente, WebSocket est devenue l'une des technologies dominantes pour l'envoi de messages en temps réel. Dans cet article, nous explorerons comment utiliser l'API WebSocket en PHP pour l'envoi de messages en temps réel.

1. Qu'est-ce que WebSocket

WebSocket est un nouveau type de protocole de communication réseau. Il s'agit d'une méthode de communication bidirectionnelle basée sur le protocole TCP. Il peut établir un canal de connexion persistant entre le client et le serveur et effectuer une communication bidirectionnelle sur ce canal pour obtenir une transmission de messages en temps réel. Par rapport au protocole HTTP traditionnel, WebSocket a une latence plus faible et des performances en temps réel plus élevées.

2. Comment utiliser l'API WebSocket en PHP

Pour utiliser l'API WebSocket en PHP, vous devez introduire le plug-in WebSocket. Les plug-ins WebSocket couramment utilisés incluent phpwebsocket et Ratchet. Dans cet article, nous prenons phpwebsocket comme exemple pour expliquer comment utiliser l'API WebSocket pour l'envoi de messages en temps réel.

  1. Installer phpwebsocket

phpwebsocket est une bibliothèque d'implémentation WebSocket basée sur PHP qui prend en charge les protocoles RFC6455 et Hybi-10. Avant utilisation, vous devez télécharger et installer phpwebsocket. Vous pouvez télécharger la dernière version de phpwebsocket depuis le site officiel de phpwebsocket, ou vous pouvez utiliser composer pour l'installer :

composer require cboden/ratchet
  1. Écrivez un programme serveur

Lorsque vous utilisez phpwebsocket pour le push de messages en temps réel, vous devez écrire un serveur programme. Vous pouvez écrire un programme serveur en héritant de la classe WebSocket. Le code est le suivant : la méthode

require_once('WebSocket.php');

class MyWebSocket extends WebSocket
{

    public function process($client, $message)
    {
        // 处理消息
    }

    public function connected($client)
    {
        // 处理连接
    }

    public function closed($client)
    {
        // 处理关闭
    }

}
  • process() est utilisée pour traiter les messages envoyés par le client ; la méthode
  • connected() est utilisée pour traiter les connexions client ;
  • Méthode closed() Utilisée pour gérer les connexions de fermeture des clients.
    Exécutez le programme serveur
Utilisez phpwebsocket pour exécuter le programme serveur. Le code est le suivant :

require_once('MyWebSocket.php');

$server = new MyWebSocket("127.0.0.1", 8080);

try {
    $server->run();
} catch (Exception $e) {
    $server->stdout($e->getMessage());
}

    Écrivez le programme client
Dans le programme client, vous devez créer un nouvel objet WebSocket et établir une connexion avec le serveur. Le code du programme client est le suivant :

var socket = new WebSocket("ws://localhost:8080");

socket.onopen = function() {
    // 连接成功
};

socket.onmessage = function(event) {
    // 服务器发送消息
};

socket.onclose = function() {
    // 连接关闭
};

// 发送消息
socket.send('Hello, World!');

3. Implémenter le push de messages en temps réel

Lorsque vous utilisez l'API WebSocket pour le push de messages en temps réel, vous devez prendre en compte les aspects suivants :

    Push message vers un seul client
Push message Il est très simple d'envoyer un message à un seul client, utilisez simplement la méthode de message send() :

$this->send($client, $message);

    Push un message à tous les clients
Push un message à tous les clients, vous avez besoin pour parcourir tous les clients connectés et utiliser la méthode send () pour envoyer des messages :

foreach ($this->clients as $client) {
    $this->send($client, $message);
}

    Messages de groupe
Pousser les messages vers le groupe de clients spécifié. Vous devez définir un groupe de messages et ajouter le client au groupe. message de groupe, il vous suffit d'envoyer un message au groupe. Tous les clients peuvent envoyer des messages :

// 定义消息组
$group = array();

// 将客户端加入到消息组中
$group[$client->id] = $client;

// 群发消息
foreach ($group as $member) {
    $this->send($member, $message);
}

IV Résumé

Cet article présente comment utiliser l'API WebSocket en PHP pour le push de messages en temps réel. En utilisant la technologie WebSocket, une latence plus faible et des performances en temps réel plus élevées peuvent être obtenues, offrant ainsi plus de possibilités aux applications Web. Je pense que grâce à l'introduction de cet article, vous avez une compréhension plus approfondie de la technologie WebSocket et pouvez utiliser la technologie WebSocket dans des projets réels pour obtenir de meilleurs effets de transmission de messages 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!

Déclaration:
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