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

94df6a699d0b747744d11f7514d96ba5.png

一.注册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教程栏目!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值