php 如何在没有Vite/Mix的情况下在刀片文件中使用Laravel Echo?

rbl8hiat  于 2023-05-16  发布在  PHP
关注(0)|答案(1)|浏览(127)

现在我正在使用/resources/js/app.js的Laravel Echo:

import './bootstrap';
Echo.channel('some_channel')
.listen('OrderShipmentStatusUpdated', (e) => {
    console.log("broadcast received");
});

并且在/resources/js/bootstrap.js中导入Echo:

import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

但现在我想在一个不使用Vite或Mix的应用程序中使用Echo。因此,当我将以下代码放入刀片文件时:

Echo.channel('some_channel')
    .listen('OrderShipmentStatusUpdated', (e) => {
        console.log("broadcast received");
        });

我得到Uncaught ReferenceError: Echo is not defined错误(显然)。
如何使用Echo作为JS脚本而不是模块导入?文档只有一个通过NPM安装的选项,但是没有脚本文件可以下载吗?

cedebl8k

cedebl8k1#

为此,您需要pusher的CDN和echo

<script src="https://js.pusher.com/7.0/pusher.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/laravel-echo@1.11.2/dist/echo.iife.js"></script>

并对Laravel文档代码进行了轻微修改

window.Pusher = require('pusher-js');
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'XXXXXXXXXXX',
    cluster: XXXXX',
    forceTLS: true
});

使用window.Echo.channel而不是仅使用Echo.channel

相关问题