Maison  >  Article  >  cadre php  >  Explication détaillée de la façon dont Laravel utilise le pusher pour envoyer des messages

Explication détaillée de la façon dont Laravel utilise le pusher pour envoyer des messages

藏色散人
藏色散人avant
2020-01-26 14:32:533621parcourir

Explication détaillée de la façon dont Laravel utilise le pusher pour envoyer des messages

1. Inscris-toi

1. Inscris-toi

https://. pusher.com/

2. Obtenez la clé, la clé secrète, l'app_id, etc.

2. Configurer le pusher

1. Installer pusher

composer require pusher/pusher-php-server

2. Configurer config/broadcasting.php

'default' => env('BROADCAST_DRIVER', 'pusher'),
....
'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_KEY'),
            'secret' => env('PUSHER_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster' => 'ap1',
                'encrypted' => true
            ],
        ],
.....

3. Créer des événements

1. comme suit :

<?php
 
namespace App\Events;
 
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
 
class PusherEvent extends Event implements ShouldBroadcast
{
    use SerializesModels;
 
    public $info;
 
    /**
     * PusherEvent constructor.
     */
    public function __construct($info)
    {
        $this->info = $info;
    }
 
    /**
     * 指定广播频道(对应前端的频道)
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return [&#39;my-channel&#39;];
    }
 
    /**
     * 指定广播事件(对应前端的事件)
     * @return string
     */
    public function broadcastAs()
    {
        return &#39;my-event&#39;;
    }
 
    /**
     * 获取广播数据,默认是广播的public属性的数据
     */
    public function broadcastWith()
    {
        return [&#39;info&#39; => $this->info];
    }
}

2. Les événements de diffusion ne nécessitent pas d'auditeurs ; les événements de diffusion doivent hériter de l'interface ShouldBroadcast

4. >1 .Événement déclencheur

event(new \App\Events\PusherEvent(&#39;测试&#39;));

2. Code frontal

<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="https://js.pusher.com/4.0/pusher.min.js"></script>
  <script>
 
    // Enable pusher logging - don&#39;t include this in production
    Pusher.logToConsole = true;
 
    var pusher = new Pusher(&#39;XXX&#39;, {
      cluster: &#39;ap1&#39;,
      encrypted: true
    });
 
    var channel = pusher.subscribe(&#39;my-channel&#39;);
    channel.bind(&#39;my-event&#39;, function(data) {
      alert(data.info);
    });
  </script>
</head>

ps :

1. à

, vous devez donc configurer le certificat ; sinon la soumission échouera

https://pusher.com2 Si vous ne configurez pas le certificat, vous devez définir les paramètres

et

CURLOPT_SSL_VERIFYPEER dans CURLOPT_SSL_VERIFYHOST et les déclencheurs

vender/pusher/pusher-php-server/lib/Pusher.php

Ajouté ci-dessous :curl_setopt($ch, CURLOPT_POSTFIELDS, $post_value);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

Pour plus d'articles techniques liés au framework Laravel, veuillez visiter le

tutoriel Laravel

colonne !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer