Code前端首页关于Code前端联系我们

Laravel学习笔记broadcast_database

terry 2年前 (2023-09-25) 阅读数 55 #后端开发
  1. composer需要predis/predis
  2. 设置.env文件,修改广播驱动BROADCAST_DRIVER=redis
  3. 设置=.env文件,修改D(使用Redis队列)
  4. 打开config/app.php App\Providers\BroadcastServiceProvider::class
  5. 生成事件artisan do:界面中的事件,我应该做什么:兄弟。 实现Should Broadcast
  6. 编辑广播内容以及频道
publicfunction__construct($content){$this->content=$content;}publicfunctionbroadcastOn(){returnnewPrivateChannel('test_chat');}
  1. 安装客户端与redis广播配对,cnpm install --save
  2. 安装 laravel-echo-server (因为 Laravel 官方没有原生服务器实现;但是,您可以选择社区驱动和维护的项目 tlaverdure/laravel-echo-server) cnpm install -g laravel-echo -server
    (不知道为什么,使用npm会安装其他鬼,所以请使用cnpm)
  3. 如果laravel安装在虚拟机上,在.env中添加以下内容
LARAVEL_ECHO_SERVER_REDIS_HOST=192.168.10.10LARAVEL_ECHO_SERVER_REDIS_PORT=6379
  1. 配置客户端资源/js /引导程序。 js
import Echo from "laravel-echo"

window.io =require('');

window.Echo=newEcho({
    broadcaster:'',
    host: window.location.hostname +':6001'});
  1. 配置客户端监听广播
window.Echo.channel('countryside').listen('Free',(e)=>{
        console.log(e);});
  1. 启动Laravel Queue Worker
$ php artisan queue:work
  1. 启动Laravel echo server
$ laravel-echo-server start
  1. 过程中遇到这样的问题登录网站后控制台狂跳, 503错误提示跨域问题
    Laravel学习笔记 广播_数据库

    研究了一天多,发现是laravel-echo服务器配置问题(真正的坑)。 。 。而不是所谓的跨域问题(其实有503错误,不过注意跨域错误)
    因为使用homestead来运行服务器,所以homestead上的代码映射到本地目录,
    和phpstorm用于本地使用链接本地文件夹中的项目进行开发。
    phpstorm 执行 laravel-echo-server start 后,关联的是本地域名服务器
    Laravel学习笔记 广播_数据库
    ,而不是 homestead

    上的服务器。但前端请求时,请求为 host: window.location.hostname + ':6001' 即。当前域名:6001(这个域名挂载在虚拟机上,即)
    Laravel学习笔记 广播_数据库
    通向请求地址和laravel-echo-server服务器。地址不匹配,导致503问题。

    解决办法有两种:

    • 如上图所示,将请求地址改为localhost(但这只是临时的,只能用于本地测试和生产环境。100%问题)
    • 安装诚实地在 homestead 上运行 laravel-echo- 服务器并在 homestead 上启动它。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门