Maison  >  Article  >  développement back-end  >  Utilisez PHP pour développer Websocket et créer un système de transmission de messages en temps réel

Utilisez PHP pour développer Websocket et créer un système de transmission de messages en temps réel

PHPz
PHPzoriginal
2023-12-02 09:17:30706parcourir

Utilisez PHP pour développer Websocket et créer un système de transmission de messages en temps réel

Utilisez PHP pour développer WebSocket et créer un système de transmission de messages en temps réel

  1. Introduction
    Avec l'augmentation des besoins de communication en temps réel, les systèmes de transmission de messages en temps réel basés sur WebSocket deviennent de plus en plus populaires dans le Web développement. Cet article explique comment utiliser PHP pour développer une application WebSocket simple afin d'implémenter la fonction de transmission de messages en temps réel.
  2. Qu'est-ce que WebSocket ?
    WebSocket est un protocole de communication bidirectionnelle en duplex intégral sur une seule connexion TCP. Par rapport au protocole HTTP traditionnel, WebSocket peut fournir une transmission de données en temps réel plus rapide et convient aux scénarios nécessitant l'envoi de messages en temps réel.
  3. Préparation de l'environnement de développement
    Avant de commencer, nous devons préparer les outils et environnements suivants :
  4. PHP 7.0+ : cet article utilise PHP comme langage côté serveur et doit utiliser l'extension WebSocket de PHP.
  5. Apache ou Nginx : en tant que serveur Web, utilisé pour établir des connexions WebSocket entre les clients et les serveurs.
  6. Client WebSocket : il peut s'agir de n'importe quel navigateur ou outil de débogage prenant en charge WebSocket.
  7. Exemple de code côté serveur
    Tout d'abord, nous devons créer une instance de serveur WebSocket côté serveur et écouter le port spécifié.
// 创建WebSocket服务器实例,监听指定端口
$server = new SwooleWebSocketServer('0.0.0.0', 9501);

// 监听WebSocket连接打开事件
$server->on('open', function (SwooleWebSocketServer $server, SwooleHttpRequest $request) {
    echo "WebSocket连接打开
";
});

// 监听WebSocket消息事件
$server->on('message', function (SwooleWebSocketServer $server, SwooleWebSocketFrame $frame) {
    echo "收到消息:{$frame->data}
";
    // 推送消息给所有连接的客户端
    $server->push($frame->fd, "服务器收到消息:{$frame->data}");
});

// 监听WebSocket连接关闭事件
$server->on('close', function (SwooleWebSocketServer $server, int $fd) {
    echo "WebSocket连接关闭
";
});

// 启动WebSocket服务器
$server->start();

Le code ci-dessus utilise l'extension Swoole pour créer une instance de serveur WebSocket et écouter le port 9501. Chaque fois qu'un client se connecte, envoie un message ou ferme une connexion, le gestionnaire d'événements correspondant est déclenché.

  1. Exemple de code client
    Ensuite, nous devons établir une connexion WebSocket côté client pour établir une communication en temps réel avec le serveur.
<!DOCTYPE html>
<html>
<head>
    <title>WebSocket示例</title>
</head>
<body>
    <script type="text/javascript">
        // 创建WebSocket对象,与服务器建立连接
        var ws = new WebSocket('ws://localhost:9501');

        // 监听WebSocket连接打开事件
        ws.onopen = function () {
            console.log('WebSocket连接已打开');
        };

        // 监听WebSocket消息事件
        ws.onmessage = function (event) {
            console.log('收到消息:' + event.data);
        };

        // 监听WebSocket连接关闭事件
        ws.onclose = function () {
            console.log('WebSocket连接已关闭');
        };

        // 发送消息
        function sendMessage() {
            var message = document.getElementById('message').value;
            ws.send(message);
        }
    </script>

    <input type="text" id="message" placeholder="输入消息" />
    <button onclick="sendMessage()">发送消息</button>
</body>
</html>

Le code ci-dessus utilise JavaScript côté navigateur pour créer un objet WebSocket et établir une connexion avec le serveur. En écoutant les événements WebSocket, des fonctions telles que la réception de messages, l'envoi de messages et la capture des fermetures de connexion peuvent être implémentées.

  1. Exécuter et tester
    Exécutez le code côté serveur dans une fenêtre de ligne de commande pour démarrer le serveur WebSocket. Ensuite, ouvrez la page client via le navigateur et établissez une connexion WebSocket.

Maintenant, vous pouvez saisir un message sur la page client et l'envoyer, et le serveur recevra et répondra au message correspondant. Parallèlement, le message reçu sera affiché sur la page client.

  1. Résumé
    Grâce à l'introduction de cet article, vous pouvez apprendre à utiliser PHP pour développer une application WebSocket simple afin d'implémenter la fonction push de messages en temps réel. Bien entendu, le code ci-dessus n’est qu’un exemple de base, et vous pouvez l’étendre et l’optimiser en fonction des besoins réels.

Les capacités de communication en temps réel de WebSocket offrent davantage de possibilités de développement Web, particulièrement adaptées aux scénarios tels que les applications de chat, la surveillance en temps réel et les notifications. Je pense que cet article peut vous aider à démarrer le développement de WebSocket et inspirer plus de créativité et d'idées.

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