Maison développement back-end tutoriel php Comment mettre en œuvre une surveillance continue de l'abonnement aux messages Redis et mettre à jour le statut de l'utilisateur en PHP ?

Comment mettre en œuvre une surveillance continue de l'abonnement aux messages Redis et mettre à jour le statut de l'utilisateur en PHP ?

Sep 05, 2023 am 11:19 AM
php redis 消息订阅

Comment mettre en œuvre une surveillance continue de labonnement aux messages Redis et mettre à jour le statut de lutilisateur en PHP ?

Comment mettre en œuvre une surveillance continue de l'abonnement aux messages Redis et mettre à jour le statut des utilisateurs en PHP ?

Présentation :
Redis est une base de données en mémoire open source largement utilisée qui prend en charge les fonctions d'abonnement et de publication de messages. Lors du développement d'applications Web, nous sommes souvent confrontés au besoin de mettre à jour le statut des utilisateurs en temps réel, comme les systèmes de chat en ligne, l'affichage des données en temps réel, etc. Cet article explique comment utiliser PHP pour implémenter la fonction de surveillance continue des abonnements aux messages Redis et de mise à jour du statut des utilisateurs.

Étapes :

  1. Installez l'extension Redis : Tout d'abord, assurez-vous d'avoir installé l'extension Redis dans votre environnement PHP. Vous pouvez l'installer via la commande pecl install redis, ou ajouter extension=redis.so au fichier de configuration PHP pour activer l'extension. pecl install redis命令来安装,或者在PHP配置文件中添加extension=redis.so来启用扩展。
  2. 连接Redis服务器:在PHP代码中,使用Redis类来连接Redis服务器。可以通过$redis = new Redis()来创建一个Redis实例,然后通过$redis->connect($host, $port)方法连接到Redis服务器。 $host$port参数分别代表Redis服务器的主机和端口。

代码示例:

1

2

3

<?php

$redis = new Redis();

$redis->connect("localhost", 6379);

Copier après la connexion
  1. 订阅消息:使用$redis->subscribe($channels, $callback)方法订阅Redis的消息。$channels是一个数组,可以指定一个或多个频道来订阅消息。$callback是一个回调函数,用于处理接收到的消息。

代码示例:

1

2

3

4

5

6

7

8

9

<?php

function handleMessage($redis, $channel, $message) {

    // 在此处处理接收到的消息

    // 可以更新用户状态或执行其他相关操作

    echo "Received message: $message

";

}

 

$redis->subscribe(["channel1", "channel2"], "handleMessage");

Copier après la connexion
  1. 监听消息:使用$redis->psubscribe($patterns, $callback)方法可以监听多个频道的消息。与订阅消息类似,$patterns
  2. Connectez-vous au serveur Redis : dans le code PHP, utilisez la classe Redis pour vous connecter au serveur Redis. Vous pouvez créer une instance Redis via $redis = new Redis(), puis vous connecter au serveur Redis via $redis->connect($host, $port) méthode. Les paramètres $host et $port représentent respectivement l'hôte et le port du serveur Redis.

Exemple de code :

1

2

3

4

5

6

7

8

9

<?php

function handleMessage($redis, $pattern, $channel, $message) {

    // 在此处处理接收到的消息

    // 可以更新用户状态或执行其他相关操作

    echo "Received message on channel $channel: $message

";

}

 

$redis->psubscribe(["channel:*"], "handleMessage");

Copier après la connexion

    Abonnez-vous aux messages : utilisez la méthode $redis->subscribe($channels, $callback) pour vous abonner aux messages Redis. $channels est un tableau qui peut spécifier un ou plusieurs canaux pour s'abonner aux messages. $callback est une fonction de rappel utilisée pour traiter les messages reçus.


    Exemple de code :

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    <?php

    function updateUserStatus($redis, $channel, $message) {

        // 更新用户在线状态

        $userId = $channel;

        $status = $message;

         

        // 在此处执行相关操作,如更新数据库记录等

        echo "User $userId is $status

    ";

    }

     

    // 用户登录时订阅消息

    function userLogin($userId) {

        global $redis;

        $redis->subscribe(["user:$userId"], "updateUserStatus");

    }

     

    // 用户退出登录时取消订阅消息

    function userLogout($userId) {

        global $redis;

        $redis->unsubscribe(["user:$userId"]);

    }

     

    $user = "123"; // 用户ID

    userLogin($user); // 用户登录

     

    // 模拟用户状态更新

    $redis->publish("user:$user", "online");

    sleep(3); // 假设有其他操作需要处理

     

    $userLogout($user); // 用户退出登录

    Copier après la connexion

      Écoute des messages : utilisez la méthode $redis->psubscribe($patterns, $callback) pour écouter les messages de plusieurs canaux. Semblable à l'abonnement aux messages, $patterns est un tableau qui spécifie un ou plusieurs modèles pour écouter les messages.

      Exemple de code :

      1

      2

      3

      4

      5

      6

      7

      8

      9

      <?php

      // 监听用户状态更新

      function handleUserStatus($redis, $pattern, $channel, $message) {

          echo "User $channel is now $message

      ";

      }

       

      // 监听所有用户状态更新

      $redis->psubscribe(["user:*"], "handleUserStatus");

      Copier après la connexion

      Remarque : lors de l'abonnement ou de l'écoute des messages, le code PHP se bloquera dans la fonction de rappel et ne poursuivra pas l'exécution jusqu'à ce que le message soit reçu. Par conséquent, vous devez utiliser des connexions longues ou le multi-threading dans les scripts PHP pour obtenir une écoute continue.

      Exemple d'application : 🎜Dans une simple application de salle de discussion en ligne, nous pouvons utiliser Redis pour mettre à jour le statut en ligne de l'utilisateur en temps réel. 🎜🎜Lorsque l'utilisateur se connecte, une demande de message d'abonnement est envoyée au serveur Redis et le canal peut utiliser l'identifiant unique de l'utilisateur. Se désabonner des messages lorsque l'utilisateur se déconnecte. 🎜🎜Exemple de code côté serveur : 🎜rrreee🎜Exemple de code côté client : 🎜rrreee🎜Résumé : 🎜En utilisant les fonctions d'abonnement et de publication de messages de Redis et le mécanisme de traitement asynchrone de PHP, nous pouvons surveiller en permanence les messages Redis et mettre à jour le informations sur l'utilisateur en temps réel. Ceci est très utile pour développer des applications Web avec des performances en temps réel élevées. J'espère que cet article pourra vous aider à comprendre comment surveiller en permanence les abonnements aux messages Redis et mettre à jour le statut des utilisateurs en PHP. 🎜

      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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Top 10 des plateformes CMS PHP pour les développeurs en 2024 Top 10 des plateformes CMS PHP pour les développeurs en 2024 Dec 05, 2024 am 10:29 AM

CMS signifie Système de gestion de contenu. Il s'agit d'une application logicielle ou d'une plate-forme qui permet aux utilisateurs de créer, gérer et modifier du contenu numérique sans nécessiter de connaissances techniques avancées. Le CMS permet aux utilisateurs de créer et d'organiser facilement du contenu tel que du texte, des images, des vidéos et des documents, et de le publier sur des sites Web ou d'autres plateformes numériques.

Comment ajouter des éléments à la fin d'un tableau en php Comment ajouter des éléments à la fin d'un tableau en php Feb 07, 2025 am 11:17 AM

Les tableaux sont des structures de données linéaires utilisées pour traiter les données dans la programmation. Parfois, lorsque nous traitons les tableaux, nous devons ajouter de nouveaux éléments au tableau existant. Dans cet article, nous discuterons de plusieurs façons d'ajouter des éléments à la fin d'un tableau en PHP, avec des exemples de code, une sortie et une analyse de complexité du temps et de l'espace pour chaque méthode. Voici les différentes façons d'ajouter des éléments à un tableau: Utilisez des crochets [] En PHP, la façon d'ajouter des éléments à la fin d'un tableau est d'utiliser des crochets []. Cette syntaxe ne fonctionne que dans les cas où nous ne voulons ajouter qu'un seul élément. Ce qui suit est la syntaxe: $ array [] = valeur; Exemple

De quel pays est le Nexo Exchange? De quel pays est le Nexo Exchange? Mar 05, 2025 pm 05:09 PM

Nexo Exchange: Plateforme de prêt de crypto-monnaie suisse Analyse approfondie Nexo est une plate-forme qui fournit des services de prêt de crypto-monnaie, en soutenant l'hypothèque et les prêts de plus de 40 actifs cryptographiques, devises fiduciaires et de stablescoines. Il domine les marchés européens et américains et s'engage à améliorer l'efficacité, la sécurité et la conformité de la plate-forme. De nombreux investisseurs veulent savoir où est enregistré l'échange Nexo et la réponse est: la Suisse. Nexo a été fondée en 2018 par la société suisse FinTech Credssimo. NEXO Exchange Emplacement géographique et réglementation: Nexo a son siège à Zug, en Suisse, une région bien connue adaptée aux crypto-monnaies. La plate-forme coopère activement à la supervision de divers gouvernements et a été dans le réseau d'application de la loi sur le crime financier des États-Unis (FINCEN) et le Canadian Finance

See all articles