在Nuxtjs页面中未收到Pusher事件

问题描述

我使用laravel-echo在Nuxtjs中使用pusherjs

nuxt.config.js 部分用于pusherjs配置:

buildModules: [
    [
      '@nuxtjs/laravel-echo',{
        broadcaster: 'pusher',key: 'my-key-here',cluster: 'eu',forceTLS: true
      }
    ]
  ],

package.json

"vue": "^2.6.12","nuxt": "^2.14.3","pusher-js": "^7.0.0","@nuxtjs/laravel-echo": "^1.1.0",

页面/test.vue

<script>    
export default {
  mounted() {
    this.$echo.channel('ch').listen("ev",(res) => {
      console.log(res);
    });
  },};
</script>

我通过Pusherjs的Debug Console手动发送了事件,但是在Chrome的控制台中什么也没发生。

pusherjs debug console

我确定密钥和我的应用程序已正确连接到pusherjs;因为当我刷新页面时,日志出现在pusherjs的调试控制台中:

enter image description here

那么为什么前端没有收到事件?

解决方法

问题似乎是由于v1.1.0中的@nuxtjs/laravel-echo

我用过:

this.$echo.channel("ch").on("ev",(res) => {
    console.log(res);
});

代替:

this.$echo.channel('ch').listen("ev",(res) => {
    console.log(res);
});

问题解决了! (只需将on替换为listen

参考:

https://github.com/nuxt-community/laravel-echo/issues/17#issuecomment-637520496

,

我有以下内容:

"nuxt": "^2.14.3","pusher-js": "^7.0.0","@nuxtjs/laravel-echo": "^1.1.0",

我必须使用:

this.$echo.channel("channel").on("event",(res) => {
    console.log(res);
});

尽管其document表示要使用:

this.$echo.channel("channel").listen("event",(res) => {
    console.log(res);
});

意味着我必须链接“ on”方法而不是“ listen”。希望这会有所帮助!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...