我最近使用Pusher和Laravel开发了一个通知系统。不幸的是,无法通过这种方式工作:
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
Pusher.logToConsole = true;
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'WORKING KEY ..',
cluster : "mt1",
encrypted: true
});
和
window.Echo.channel('post')
.listen('ArticleEvent', function (e) {
console.log(e);
});
虽然消息已发送到客户端控制台,但是Listen
根本不起作用...而且什么也没记录。
无论如何,我都使用这种方式,并且有效:
window.Pusher = require('pusher-js');
var pusher = new Pusher('WORKING KEY ..', {
encrypted: true,
cluster: 'mt1',
});
var channel = pusher.subscribe('post');
channel.bind('ArticleEvent', function(e) {
alert(JSON.stringify(e['message']));
});
两种方式之间的区别是什么?必须首选哪种方式?
答案 0 :(得分:1)
您需要在Listen方法中包括名称空间信息。
请尝试使用(注意.
字符):
window.Echo.channel('post')
.listen('.ArticleEvent', function (e) {
console.log(e);
});