laravel 广播细节讲解
1、应用场景
1、通知(Notification) 或 信号(Signal)
2、通知是最简单的示例,也最经常用到。信号也可看作是通知的一种展现形式,只不过信号没有UI而已。
3、Activity Streams(feeds)是社交网络的核心。如微信朋友圈的点赞和评论,A可以实时看到B的点赞,B可以实时看到A的评论。
4、聊天信息的实时显示
2、模块组成
3、频道类型
1、公共频道:Channel
2、私有频道:PrivateChannel
3、存在频道:PresenceChannel 注意:
订阅公共频道不需要权限验证,会直接提示成功;私有频道private和存在频道presence在进行订阅的过程中,会向服务器端发送权限验证,看是不是有权限可以订阅该频道;
私有频道private和存在频道presence的区别在于,私有频道private能够接收其他成员发送的消息,而存在频道presence除此之外,还能够在用户的加入与离开时接收信息;
设置频道的方法(channel就是设置公共频道)在APP/Events目录下
4、配置广播
1、在.env中的BROADCAST_DRIVER设置广播驱动(Pusher类型超过一定条数需要付费)
2、开启广播配置文件,在config/app.php中的providers数组中打开注释App\Providers\BroadcastServiceProvider::class
3、设置广播队列的驱动,在.env的QUEUE_CONNECTION设置驱动,REDIS_QUEUE设置队列名称,具体细节在config/queue.php中
5、监听事件广播
实现ShouldBroadcast接口的事件被触发时,则会进行广播操作;(同时,还有一个接口叫ShouldBroadcastNow,与ShouldBroadcast接口的不同在于,将实现ShouldBroadcastNow接口的事件放入队列中时,会被放入叫sync的队列中)
6、触发事件,发送广播
1、直接事件触发:event(new \App\Events\Comment($user, true));
2、帮助函数broadcast,间接触发事件:broadcast(new \App\Events\Comment($user, true));
3、广播管理类,间接触发事件,直接广播:
$manager = app(Illuminate\Broadcasting\BroadcastManager::class);
$manager->event(new \App\Events\Comment($user, true));
4、广播管理类,间接触发事件,放入队列:
$manager = app(Illuminate\Broadcasting\BroadcastManager::class);
$manager->queue(new \App\Events\Comment($user, true)); 注意:括号中的参数,对应构造中的参数,没有为空
7、事件广播类介绍
8、成功标志
后端:判断后端配置是否成功
1、执行广播后(参考第六条),在redis中能看到广播队列,执行queue::work后能消费广播,说明成功。 前端:前端目前有安装js扩展来支持订阅广播频道或者使用swoole来实现
laravel 广播细节讲解的更多相关文章
- 【转】Python+opencv利用sobel进行边缘检测(细节讲解)
#! usr/bin/env python # coding:utf-8 # 2018年7月2日06:48:35 # 2018年7月2日23:11:59 import cv2 import numpy ...
- Innodb间隙锁,细节讲解(转)
关于innodb间隙锁,网上有很多资料,在此不做赘述,我们讲解一下关于innodb的间隙锁什么情况下会产生的问题. 网上有些资料说innodb的间隙锁是为了防止幻读,这个论点真的是误人子弟.了解inn ...
- 小白也能看懂的 Laravel 核心概念讲解
自动依赖注入 什么是依赖注入,用大白话将通过类型提示的方式向函数传递参数. 实例 1 首先,定义一个类: /routes/web.php class Bar {} 假如我们在其他地方要使用到 Bar ...
- hibernate一对多,细节讲解
1.一对多 1).首先创建两个实体类studeninfo.java跟studentxxb.java 1)studentinfo.java表如图: package model; import java. ...
- FSM自动售货机 verilog 实现及 code 细节讲解
1.题目: 饮料1.5 元, 可投入硬币1 元 0.5 元,输出饮料 零钱 2. 画出状态机. 3.仿真结果:coin=1 --> 0.5 元 coin=2-->1元 4.关键代码分析: ...
- laravel启动过程简单解析
:first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px ...
- laravel的启动过程---摘自网络博客个人学习之用
如果没有使用过类似Yii之类的框架,直接去看laravel,会有点一脸迷糊的感觉,起码我是这样的.laravel的启动过程,也是laravel的核心,对这个过程有一个了解,有助于得心应手的使用框架,希 ...
- laravel的启动过程解析
laravel的启动过程,也是laravel的核心,对这个过程有一个了解,有助于得心应手的使用框架,希望能对大家有点帮助. 统一入口 laravel框架使用了统一入口,入口文件:/public/ind ...
- Laravel Event的分析和使用
Laravel Event的分析和使用 第一部分 概念解释 请自行查看观察者模式 第二部分 源码分析 (逻辑较长,不喜欢追代码可以直接看使用部分) 第三部分 使用 第一部分 解释 当一个用户阅读了一篇 ...
随机推荐
- PHP作用域和文件夹操作
1.作用域 1.1变量作用域 1.全局变量:在函数外面 2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量 3.超全局变量:可以在函数内 ...
- CodeWarrior IDE烧写介绍
点击Flash烧写 选择芯片系列 下面将以PPC8548 NOR Flash烧写为例 默认配置文件目录:C:\Program Files (x86)\Freescale\CodeWarrior PA ...
- Ubuntu个人使用笔记整理
Ubuntu笔记 Ubuntu使用过程中整理的一些常用或关键操作整理,以备不时之需, 另外自己可以对界面做一些美化,这部分自行百度去配置,我的界面如图 ##################Ubuntu ...
- 微服务(入门学习五):identityServer4+ocelot+consul实现简单客户端模式
简介 主要是采用identity Server4 和ocelot 加上consul 实现简单的客户端模式 开发准备 环境准备 下载并安装Consul具体请参考前几篇的内容 项目介绍 创建ocelot ...
- 从立创EDA,Gratipay看中文编程开发环境和推广运营的一个趋势
前不久听说立创EDA,对比之前的讨论: 适合中文用户的编程语言和IDE, 侧重于现有语言/IDE不具备的特性 · Issue #11 · program-in-chinese/overview,觉得颇 ...
- CDH预警配置QQ邮箱
一. 在QQ邮箱中开启POP   二 .关闭主机的sendmail,开启postfix (本机若没有两个服务,就需要先安装)本地安装sendmail和postfix [root@Slave1 ~] ...
- 6.1 Spark SQL
一.从shark到Spark SQL Hive能够把SQL程序转换成map-reduce程序 可以把Hadoop中的Hive看作是一个接口,主要起到了转换的功能,并没有实际存储数据. Shark即 ...
- SpringCloud学习笔记(七、SpringCloud Netflix Zuul)
目录: springcloud整合eureka.config.zuul zuul源码分析 springcloud整合eureka.config.zuul: 1.架构图 2.GitHub:https:/ ...
- Vue 中的 子组件 给 父组件 传值
子组件的某一个事件(sendData)内部,通过this.$emit('事件名', 传递的值)传递数据父组件在调用子组件的地方,绑定了子组件自定义的 事件名(change-data) 定义父组件的地方 ...
- Java进阶的道路,怎么成为大牛?
已然励志在java路上走的更远,那就有必要了解java的途径.先看图 image.png 愈加细化的细节如下 一: 编程基础 不管是C仍是C++,不管是Java仍是PHP,想成为一名合格的程序员,根 ...