You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

纯VueJS项目中如何正确安装配置laravel-echo和pusher-js

纯Vue项目配置laravel-echo + pusher-js 解决方案

你的配置无法生效的核心问题是多写了Vue.use(Echo):laravel-echo本身不是标准Vue插件,不需要通过use方法注册,直接挂载到全局或者Vue原型即可,完整配置流程如下:

步骤1:确认依赖

你已经在package.json中引入了兼容版本,若未安装可执行命令:

npm install laravel-echo@1.11.2 pusher-js@7.0.3

步骤2:修改初始化配置

根据你使用的Vue版本选择对应配置,写入项目入口文件(通常是main.js):

Vue2 配置示例

import Vue from 'vue'
import App from './App.vue'
import Echo from "laravel-echo";
import Pusher from "pusher-js";

// 挂载Pusher到window对象,Echo会自动读取
window.Pusher = Pusher;

// 初始化Echo实例
window.Echo = new Echo({
  broadcaster: "pusher",
  key: "myappkey", // 替换为你实际的服务端key
  cluster: "mt1", // 替换为你实际的集群参数
  wsHost: window.location.hostname,
  wsPort: 6001,
  wssPort: 6001, // https环境使用该端口
  forceTLS: false, // 本地http环境关闭,生产https环境设为true
  disableStats: true,
  enabledTransports: ['ws', 'wss'] // 强制走websocket协议避免降级
});

// 挂载到Vue原型,组件内可通过this.$echo调用
Vue.prototype.$echo = window.Echo;

new Vue({
  render: h => h(App),
}).$mount('#app')

Vue3 配置示例

import { createApp } from 'vue'
import App from './App.vue'
import Echo from "laravel-echo";
import Pusher from "pusher-js";

window.Pusher = Pusher;

const echoInstance = new Echo({
  broadcaster: "pusher",
  key: "myappkey",
  cluster: "mt1",
  wsHost: window.location.hostname,
  wsPort: 6001,
  wssPort: 6001,
  forceTLS: false,
  disableStats: true,
  enabledTransports: ['ws', 'wss']
});

const app = createApp(App)
// 全局挂载,选项式API组件内通过this.$echo调用,setup语法糖可通过getCurrentInstance获取或直接全局导入实例
app.config.globalProperties.$echo = echoInstance
app.mount('#app')

步骤3:组件内调用示例

export default {
  mounted() {
    // 监听公共频道消息
    this.$echo.channel('公共频道名称')
      .listen('广播事件名称', (res) => {
        console.log('收到广播内容:', res)
      })
    // 私有/ presence频道的鉴权接口你可以自己用任意后端实现,不需要依赖Laravel
  },
  beforeDestroy() {
    // 组件销毁时注销监听,避免重复触发
    this.$echo.leaveChannel('公共频道名称')
  }
}

常见问题排查

  • 检查websocket服务端(如Soketi、laravel-websockets)是否正常启动,6001端口是否开放、跨域配置正确
  • 确认key、cluster参数和服务端配置完全一致
  • 本地http环境不要开启forceTLS,生产https环境必须开启forceTLS且端口配置为wss对应的端口

内容的提问来源于stack exchange,提问作者Edinho Rodrigues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:24:00