ホームページ  >  記事  >  PHPフレームワーク  >  Laravel がプッシャーを使用してメッセージをプッシュする方法の詳細な説明

Laravel がプッシャーを使用してメッセージをプッシュする方法の詳細な説明

藏色散人
藏色散人転載
2020-01-26 14:32:533621ブラウズ

Laravel がプッシャーを使用してメッセージをプッシュする方法の詳細な説明

#1. プッシャーを登録します#1. 登録

#https:// Pusher.com/

2. キー、秘密キー、app_id などを取得します。

2. Pusher を設定します

1. Pusher をインストールします

composer require pusher/pusher-php-server

2. 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 を設定します。イベントを作成します

1. コードは次のとおりです。

<?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. ブロードキャスト イベントにはリスナーは必要ありません。ブロードキャスト イベントはインターフェイス ShouldBroadcast

を継承する必要があります。 4. ブロードキャスト

1 .トリガーイベント

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

2.フロントエンドコード

<!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.pusherはcurlを使用して

https://pusher.com

データを送信するため、証明書を構成する必要があります。そうしないと送信が失敗します2. 証明書を構成しない場合は、curl の # を設定する必要があります。 ##CURLOPT_SSL_VERIFYPEER

および

CURLOPT_SSL_VERIFYHOST #curl_setopt($ch, CURLOPT_POSTFIELDS, vender/pusher/pusher-php-server/lib/Pusher のトリガーの $post_value。 php

);

以下に追加:

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

laravel フレームワークに関連する技術的な記事については、laravel チュートリアル 列をご覧ください。

以上がLaravel がプッシャーを使用してメッセージをプッシュする方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。