Laravel利用pusher推送消息的方法详解

互联网 20-1-26

一.注册pusher

1.注册

https://pusher.com/

2.获取key,密匙,app_id等

二.配置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             ],         ], .....

三.建立事件

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 ['my-channel'];     }       /**      * 指定广播事件(对应前端的事件)      * @return string      */     public function broadcastAs()     {         return 'my-event';     }       /**      * 获取广播数据,默认是广播的public属性的数据      */     public function broadcastWith()     {         return ['info' => $this->info];     } }

2.广播事件,并不需要监听器;广播事件需要继承接口ShouldBroadcast

四.广播

1.触发事件

event(new \App\Events\PusherEvent('测试'));

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't include this in production     Pusher.logToConsole = true;       var pusher = new Pusher('XXX', {       cluster: 'ap1',       encrypted: true     });       var channel = pusher.subscribe('my-channel');     channel.bind('my-event', function(data) {       alert(data.info);     });   </script> </head>

ps:

1.pusher使用curl向https://pusher.com提交数据,所以你需要配置证书;否则提交会失败

2.如果不配置证书,则需要设置curl的CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST

vender/pusher/pusher-php-server/lib/Pusher.php中的trigger的

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_value);

下面增加:

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

更多laravel框架相关技术文章,请访问laravel教程栏目!

以上就是Laravel利用pusher推送消息的方法详解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: pusher
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:8 个 Laravel 模型时间戳使用技巧

相关资讯