如何解决在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;因为当我刷新页面时,日志出现在pusherjs的调试控制台中:
那么为什么前端没有收到事件?
解决方法
问题似乎是由于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”。希望这会有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。