一.注册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);

最新文章

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

热门文章

  1. HDU 1171Big Event in HDU(转01背包)
  2. Visual Studio Code 好用的 source code editor
  3. 洛谷 P1616 疯狂的采药【裸完全背包】
  4. springmvc适配器的应用
  5. php 快速上手
  6. Codeforces 1037F. Maximum Reduction
  7. schema get_ddl
  8. hashmap hashtable
  9. disable enable 所有其他表关联的外键
  10. Oracle 查询每天执行慢的SQL