1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > pusher php Laravel利用pusher推送消息的方法详解

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

时间:2022-04-14 21:37:40

相关推荐

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

一.注册pusher

1.注册/

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向提交数据,所以你需要配置证书;否则提交会失败

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教程栏目!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。