Laravel利用pusher推送消息的方法详解
时间:2020-01-26 14:32
一.注册pusher 1.注册 https://pusher.com/ 2.获取key,密匙,app_id等 二.配置pusher 1.安装pusher 2.配置config/broadcasting.php 三.建立事件 1.代码如下: 2.广播事件,并不需要监听器;广播事件需要继承接口ShouldBroadcast 四.广播 1.触发事件 2.前端代码 ps: 1.pusher使用curl向 2.如果不配置证书,则需要设置curl的 在 下面增加: 更多laravel框架相关技术文章,请访问laravel教程栏目! 以上就是Laravel利用pusher推送消息的方法详解的详细内容,更多请关注gxlsystem.com其它相关文章!composer require pusher/pusher-php-server
'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
],
],
.....
<?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];
}
}
event(new \App\Events\PusherEvent('测试'));
<!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>
https://pusher.com
提交数据,所以你需要配置证书;否则提交会失败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);