Laravel利用pusher推送消息
2024-09-04 07:34:50
一.注册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_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);
最新文章
- Js IP转数字
- MAC实用的小工具
- Android 数据库管理— — —创建数据库
- 快速击键(MyEclipse编写的QuickHit项目)
- Aristochart – 灵活的 HTML5 Canvas 折线图
- ecshop 调用收货地址
- Python基础第一篇
- Cheatsheet: 2014 05.01 ~ 05.31
- java源程序---可执行文件(.exe)----安装包
- 忽然想到,为什么以前iOS的工资高
- EIGRP认证 配置 (仅仅是命令 原理自己去看书) 转自:http://blog.163.com/s_u/blog/static/13308367201111771831631/
- SQLiteDatabase和Contentprovider
- 一步一步从原理跟我学邮件收取及发送 10.四句代码说清base64
- Java c# 跨语言Json反序列化首字母大小写问题
- 激活效能,CODING 敏捷研发模块上线
- 有关js获取屏幕宽度问题
- orcl数据库锁等级研究小记
- matlab rank
- 五.hadoop 从mysql中读取数据写到hdfs
- SPOJ 694 DISUBSTR - Distinct Substrings