2017-03-18 108 views
2

我在推杆工作时遇到问题。我已经按照文档,但我不知道问题是..控制台返回空。使用Laravel 5.4推杆

public function broadcastOn() 
{ 

    return new PrivateChannel('my-channel'); 
} 

这里是我的js for pusher。

<script src="https://js.pusher.com/4.0/pusher.min.js"></script> 
<script> 
(function() { 



    // Enable pusher logging - don't include this in production 
    Pusher.logToConsole = true; 

变种推杆=新推杆( '6049410e84e42d918b14',{ 加密:真 });

var channel = pusher.subscribe('my-channel'); 

    channel.bind('\Dms\Events\NewNotification', addMessage); 

    function addMessage(data) { 
     var listItem = $("<li class='list-group-item'></li>"); 
     listItem.html(data.message); 
     $('#messages').prepend(listItem); 

     console.log(data.message) 
    } 

})() 

以上是我作为试验的所有代码。请任何人完成此协助。 Laravel 5.4现在正在使用。 以下是错误代码。 enter image description here

回答

1

在Laravel 5.4中,专用频道的前缀为private-。因此,尝试改变这个:

var channel = pusher.subscribe('my-channel'); 

这样:

var channel = pusher.subscribe('private-my-channel'); 

其次,检查你的字符串,你将需要避免反斜线。所以'\Dms\Events\NewNotification'应该是这样的:'\\Dms\\Events\\NewNotification'

最后,我会推荐使用Laravel Echo,因为它使事情真的很容易与Pusher和Laravel一起工作。与之呼应,这些代码两行:

var channel = pusher.subscribe('my-channel'); 

channel.bind('\Dms\Events\NewNotification', addMessage); 

看起来就像这样:

Echo.private('my-channel') 
    .listen('\\Dms\\Events\\NewNotification', addMessage); 

通知你没有写前缀private-了。

+0

谢谢,但现在我有这样的错误推的:无法从你的webapp身份验证信息:404 警告@ pusher.min.js:8个 r.onreadystatechange @ pusher.min.js:8 推动者。 min.js:8推动者:无法从您的web应用程序获得授权信息:404 pusher.min.js:8推杆:推杆上的私人测验没有回调:subscription_error –

+0

@philipNjuguna嗯,因为现在这是一个不同的错误,我建议你问一个新的StackOverflow问题,以便人们可以回答这个错误。如果我目前的答案已经解决了您原始问题中的问题,我希望您可以将其标记为已接受的答案。谢谢! – jcsoriano