问下 Laravel 广播系统,是不是要用 Vue 模板,blade 是怎么弄的?

我已经安装了laravel-echo-server 也start起来了,然后queue_connection 设置成redis了,
然后我创建了一个事件,

public function broadcastOn()
{
        return new Channel('blog'.$this->users->id);
}

发布一个广播,然后在一个页面比如hello.blade.php页面

然后查看console那一栏,发现提示 Uncaught ReferenceError: Echo is not defined ,我已经在bootstrap.js后面加上了,
import Echo from 'laravel-echo'

window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

babel 不能用 import 吧,你应该用 script 引入 laravel-echo 和 socket.io-client

5年前 评论
donggan (楼主) 5年前

@donggan 你可以找一下有没有cdn,没有的话你可以把 laravel-echo 项目 clone 下来,然后执行 npm run build 命令构建项目,构建完成后把 dist 目录下的文件 copy 到你项目下,最后 用 script 引入即可

socket.io-client 可以启动 laravel-echo-server 服务,然后这么引入

<script src="//127.0.0.1:6001/socket.io/socket.io.js"></script>
5年前 评论
donggan (楼主) 5年前
donggan (楼主) 5年前
pingfan (作者) 5年前
donggan (楼主) 5年前
pingfan (作者) 5年前
pingfan (作者) 5年前
5年前 评论
donggan (楼主) 5年前
pingfan (作者) 5年前
pingfan (作者) 5年前
donggan (楼主) 5年前
donggan (楼主) 5年前
donggan (楼主) 5年前
pingfan (作者) 5年前
pingfan (作者) 5年前
pingfan (作者) 5年前

1、需要将 database.redis.options.prefix 配置设置为空,你的应该是 laravel_database_

redis 加前缀后广播 Channel 也会自动加前缀,这会导致前端和后端的 Channel 对不上

2、broadcast(new App\Events\NewBlogView) 触发广播事件

5年前 评论
donggan (楼主) 5年前
donggan (楼主) 5年前
pingfan (作者) 5年前
pingfan (作者) 5年前
donggan (楼主) 5年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!