Pusher:通道绑定和 Laravel echo 的区别

Pusher: Difference between channel binding and Laravel echo

我最近使用 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']));
});

2 种方式之间的区别是什么,必须首选哪种?

您需要在 Listen 方法中包含命名空间信息。

请尝试使用(注意 . 字符):

window.Echo.channel('post')
    .listen('.ArticleEvent', function (e) {

    console.log(e);

});