pusher php,Laravel利用pusher推送消息的方法详解
一.注冊pusher
1.注冊https://pusher.com/
2.獲取key,密匙,app_id等
二.配置pusher
1.安裝pushercomposer 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.前端代碼
Pusher Test// 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);
});
ps:
1.pusher使用curl向https://pusher.com提交數據,所以你需要配置證書;否則提交會失敗
2.如果不配置證書,則需要設置curl的CURLOPT_SSL_VERIFYPEER和CURLOPT_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教程欄目!
總結
以上是生活随笔為你收集整理的pusher php,Laravel利用pusher推送消息的方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Clonezilla克隆还原系统
- 下一篇: 坐标系变换