2017-03-18 105 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