Laravel学习笔记 广播_数据库

2020-03-2809:41:36后端程序开发Comments2,370 views字数 1502阅读模式
  1. composer require predis/predis
  2. 设置.env文件,修改广播驱动BROADCAST_DRIVER=redis
  3. 设置.env文件,修改QUEUE_DRIVER=redis(使用到了redis队列)
  4. 开启 config/app.php App\Providers\BroadcastServiceProvider::class
  5. 生成eventartisan make:event
  6. 在事件中实现ShouldBroadcast接口,implements ShouldBroadcast
  7. 编辑广播内容以及频道
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. 配置客户端 resources/js/bootstrap.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学习笔记 广播_数据库文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17922.html

研究了一天多后发现是laravel-echo-server的配置问题(真坑)。。。而不是所谓的跨域问题(其实有503报错,但是注意力被跨域错误吸引了)
因为是使用homestead搭载服务器的,homestead上的代码映射到本地文件夹,
而本地使用phpstorm关联本地的文件夹里的项目进行开发。
在phpstorm执行laravel-echo-server start后,其关联的是本地域名服务器
Laravel学习笔记 广播_数据库
而并非homestead上的服务器文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17922.html

但是前台请求的时候请求的是host: window.location.hostname + ':6001',即当前域名 :6001(这个域名是挂载在虚拟机上的,也就是 )
Laravel学习笔记 广播_数据库
导致请求地址和laravel-echo-server服务器的地址对不上,从而出现了503问题文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17922.html

解决方法有两个:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17922.html

  • 如上图,将请求地址改为localhost(但是这种只是临时用的,只能用于本地测试,生产环境百分百出问题)
  • 老老实实的把laravel-echo-server安装到homestead上,并在homestead上启动.
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17922.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/17922.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定