Laravel框架之广播系统

环境

laravel框架版本:7.3;
npm版本:8.5.5;
node版本:v16.15.0;
本文中 仅使用了 redis 的广播驱动

简介

laravel 的广播系统和队列系统类似,需要两个进程协作,一个是 laravelweb 后台系统,另一个是 Socket.IO 服务器系统。具体的流程是页面加载时,网页 js 程序 Laravel EchoSocket.IO 服务器建立连接, laravel 发起通过驱动发布广播,Socket.IO 服务器接受广播内容,对连接的客户端网页推送信息,以达到网页实时更新的目的。

配置

配置文件 config/broadcasting.php,可以直接在 .env 中配置以下代码

BROADCAST_DRIVER=redis

Tip:队列驱动也要设置为 redis,即在 .env中把 QUEUE_CONNECTION属性值改为 redis

广播服务提供者

config/app.php 配置文件中 providers 数组中打开注释

'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        ...
		...
		...
		
        /*
         * Package Service Providers...
         */

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
		// 把下面这个服务提供者(BroadcastServiceProvider)的注释给去掉
        App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,

    ],

CSRF 令牌

Laravel Echo 需要访问当前 Session 的 CSRF 令牌(token

在创建的 blade 视图的 head 中 都要加入 meta 标签里

<meta name="csrf-token" content="{
  
  { csrf_token() }}">

Redis

Redis 广播需要安装 Predis

composer require predis/predis

安装 Laravel Echo

Laravel Echo 是一个 JavaScript 库,web 端可以轻松订阅频道并收听 Laravel 广播的事件
通过 npm 包管理器安装 Echo

npm install
npm install -g laravel-echo-server

初始化 laravel-echo-server

laravel-echo-server init

// 是否在开发模式下运行此服务器(y/n) 输入y
? Do you want to run this server in development mode? (y/N) 

// 设置服务器的端口 默认 6001 输入 6001就可以了 或者你想要的
? Which port would you like to serve from? (6001)

// 想用的数据库  选择 redis
? Which database would you like to use to store presence channel members? (Use arrow keys)
❯ redis 
  sqlite 

//   这里输入 你的laravel  项目的访问域名
? Enter the host of your Laravel authentication server. (http://localhost) 

// 选择 网络协议 http
? Will you be serving on http or https? (Use arrow keys)
❯ http 
  https 

// 您想为HTTP API生成客户端ID/密钥吗 N
? Do you want to generate a client ID/Key for HTTP API? (y/N) 

// 要设置对API的跨域访问吗?(y/n)N
Configuration file saved. Run laravel-echo-server start t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值