Maison  >  Article  >  développement back-end  >  Comment utiliser Google Cloud Pub/Sub pour implémenter l'abonnement et la publication de messages dans le développement PHP

Comment utiliser Google Cloud Pub/Sub pour implémenter l'abonnement et la publication de messages dans le développement PHP

王林
王林original
2023-06-25 09:15:511837parcourir

Google Cloud Pub/Sub est un service de messagerie entièrement géré qui vous permet de transférer de manière fiable des données en temps réel et asynchrones entre plusieurs applications. Il s'agit d'une solution largement utilisée qui répond à de nombreux cas d'utilisation tels que l'équilibrage de charge, l'informatique basée sur les événements, la journalisation, les notifications et les analyses, etc.

Dans le développement PHP, il est également possible d'utiliser Google Cloud Pub/Sub pour mettre en œuvre l'abonnement et la publication des messages. Cet article explique comment utiliser Google Cloud Pub/Sub pour la messagerie à partir d'une application PHP.

  1. Créer un service Google Cloud Pub/Sub

Avant d'utiliser Google Cloud Pub/Sub, vous devez activer l'API Google Cloud Pub/Sub sur Google Cloud Console et créer un compte de service Google Cloud Pub/Sub.

Activer l'API Google Cloud Pub/Sub :

  1. Ouvrez Google Cloud Console
  2. Sélectionnez les API et les services dans le menu -> Tableau de bord
  3. Entrez "API Google Cloud Pub/Sub" dans le champ de recherche et sélectionnez Service correspondant
  4. Cliquez sur le bouton d'activation

Créez un compte de service Google Cloud Pub/Sub :

  1. Ouvrez la console Google Cloud
  2. Sélectionnez IAM et gestion-> Compte de service dans le menu de gauche
  3. Cliquez sur le bouton Créer un compte de service
  4. Saisissez le nom et la description du compte de service dans la fenêtre contextuelle
  5. Sélectionnez Pub/Sub dans la liste déroulante des rôles -> Récepteur Pub/Sub ou Éditeur Pub/Sub
  6. Cliquez sur le bouton Enregistrer
  7. Dans le champ In généré. sur la page de détails du compte de service, cliquez sur le bouton "Créer une clé" et sélectionnez le format JSON
  8. Installez le SDK Google Cloud Pub/Sub pour PHP

Le SDK Google Cloud Pub/Sub pour PHP est la version officielle de Google Cloud Pub/Sub Bibliothèque PHP pouvant être utilisée pour implémenter la messagerie dans les applications PHP.

Installez facilement le SDK Google Cloud Pub/Sub pour PHP à l'aide de Composer :

composer require google/cloud-pubsub
  1. Publication de messages

La publication de messages à l'aide de Google Cloud Pub/Sub est très simple. Le code suivant peut publier un message dans un sujet nommé "exemple-sujet" :

require_once 'vendor/autoload.php';

use GoogleCloudPubSubPubSubClient;

$pubsub = new PubSubClient();

$topic = $pubsub->topic('example-topic');

$topic->publish(['data' => 'Hello, World!']);

Dans le code ci-dessus, l'autochargeur du fichier "vendor/autoload.php" est d'abord utilisé. Ensuite, instanciez un objet client PubSub à l'aide de la classe "GoogleCloudPubSubPubSubClient".

Ensuite, autorisez l'objet client Pub/Sub à l'aide des informations d'identification du compte de service créées à l'étape précédente. Une fois l'objet client autorisé, vous pouvez l'utiliser pour opérer sur vos rubriques et abonnements.

Ensuite, vous devez utiliser la méthode $pubsub->topic() pour obtenir un pointeur vers le sujet nommé "exemple-sujet". Ensuite, utilisez la méthode $topic->publish() pour publier des messages dans le sujet. La méthode

publish() accepte un paramètre de tableau, où la clé "data" est utilisée pour spécifier le contenu du message à publier.

  1. S'abonner aux messages

Pour vous abonner aux messages, vous devez créer un abonnement qui se connectera à un sujet et recevra tous les messages publiés par le sujet.

Le code suivant crée un abonnement nommé "exemple-abonnement" et s'abonne à un sujet nommé "exemple-sujet" :

require_once 'vendor/autoload.php';

use GoogleCloudPubSubPubSubClient;

$pubsub = new PubSubClient();

$topic = $pubsub->topic('example-topic');

$subscription = $topic->subscription('example-subscription');

if (!$subscription->exists()) {
    $subscription->create();
}

$messages = $subscription->pull();

foreach ($messages as $message) {
    echo $message->data() . PHP_EOL;
    $subscription->acknowledge($message);
}

Dans le code ci-dessus, utilisez d'abord le chargement automatique dans le périphérique de fichier "vendor/autoload.php".

Ensuite, instanciez un objet client PubSub à l'aide de la classe "GoogleCloudPubSubPubSubClient".

Ensuite, utilisez la méthode $pubsub->topic() pour obtenir un pointeur vers le sujet nommé "exemple-sujet". Ensuite, utilisez la méthode $topic->subscription() pour obtenir un pointeur vers l’abonnement nommé « exemple-abonnement ».

Si l'abonnement n'existe pas, utilisez la méthode $subscription->create() pour créer l'abonnement.

Utilisez la méthode $subscription->pull() pour extraire les messages de l'abonnement. La méthode $subscription->pull() renverra un tableau contenant les objets de message renvoyés.

Si un message est reçu, parcourez le tableau de messages, affichez le contenu du message et utilisez la méthode $subscription->acknowledge() pour confirmer que le message a été consommé.

Remarque : La méthode pull() se bloque jusqu'à ce qu'un message soit reçu ou que le délai d'attente soit atteint. Si vous souhaitez attendre de nouveaux messages, vous pouvez utiliser la méthode accusé de réception() pour accuser réception des messages reçus.

  1. Conclusion

Dans le développement PHP, il est très simple d'utiliser Google Cloud Pub/Sub pour mettre en œuvre l'abonnement et la publication de messages. Utilisez simplement la bibliothèque Google Cloud Pub/Sub SDK pour PHP et suivez les étapes ci-dessus pour intégrer Google Cloud Pub/Sub dans votre application.

De plus, Google Cloud Pub/Sub propose de nombreuses fonctions avancées, telles que l'utilisation de filtres d'abonnement pour filtrer les messages, la définition du délai d'expiration et du temps de conservation des tâches de messagerie, etc., qui peuvent être utilisées en fonction des conditions réelles.

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