2017-06-06 145 views
1

我的情況Laravel廣播

我試着讓laravel無需使用laravel回聲與推進工作,一切工作在一個公共通道,但是當我切換到專用通道在我的事件broadcastOn()方法推進器前端不再提取任何東西了。它作爲私人頻道登錄到我的推送應用程序事件日誌中,但在前端的推送者只是沒有。

我已經建立了和這樣的信道編碼返回真:

Broadcast::channel('application', function ($post, $username) { 
    if(true){ 
     return true; 
    } 
}); 

這是我的事件代碼:

public function broadcastOn() 
{ 
    return new PrivateChannel('application'); 
} 

類實現ShouldBroadcast,最後這裏是我的前端代碼:

<script> 
    //instantiate a Pusher object with our Credential's key 
    var pusher = new Pusher('MY_KEY', { 
     cluster: 'en', 
     encrypted: true 
    }); 

    //Subscribe to the channel we specified in our Laravel Event 
    var channel = pusher.subscribe('application'); 

    //Bind a function to a Event (the full Laravel class) 
    channel.bind('App\\Events\\PostMessage', function(){ 
     console.log('Event Logged'); 
    }); 
</script> 

我的問題

爲什麼我的推送器前端代碼沒有檢測到我的私人廣播?

回答

1

呵呵呵,我想我找到了: https://pusher.com/docs/client_api_guide/client_private_channels

您需要'private-'前綴通道名稱。 Echo爲你自動做的一件事!

以下是其餘供參考。最終的建議仍然有效,並會一直至少幫你調試這個問題;-)


你想用推杆時檢查有幾件事情沒有Echo在Laravel:

  • 確保您的集羣已正確設置。我剛剛檢查了自己的 儀表板,並將mt1作爲羣集。這可能是默認值 已過時。

  • 回聲被設置做很多事情在視線之外。其中之一是 轉換容易記住字符串到他們的全名命名空間 與Pusher溝通時的對手。所以,如果你想跳過 回聲,你想確保你模仿這種行爲1對1,或 否則它會中斷。

在那最後一個音符,它可能是你需要做的是這樣的:

var channel = pusher.subscribe('App/Events/application'); 
  • 嘗試複印文檔1對1爲好,添加一些代碼,使 渠道獨特。我不知道的內部,但它可能是因爲 PrivateChannel需要一個唯一的參數,並且沒有不起作用 :

像這樣:

public function broadcastOn() 
{ 
    return new PrivateChannel('order.'.$this->update->order_id); 
} 

然後爲自己的頻道:

Broadcast::channel('order.{orderId}', function ($user, $orderId) { 
    return $user->id === Order::findOrNew($orderId)->user_id; 
}); 

使用Echo第一,把一切運行下面的文檔嘗試。它提供了一個很大的便利層。然後從那裏分解它。至少你知道你已經掌握了所有的基礎知識,並且你的應用和Pusher之間的通信正在進行中! :-)

這就是我現在所能想到的,而不需要自己編碼!希望他們中的一個對你有用。

+0

嗯,感謝這一切,病重複它再次(強調刪除了應用程序,並決定嘗試回聲,得到它的工作),看看是否是這樣的情況。我不想使用回聲的唯一原因是因爲他們沒有記錄將每段JavaScript代碼放在哪裏。我設法找到了另一個網站並查看代碼。但主要原因是我不太熟悉vue components/javascript本身。但是,再次感謝您對此進行了測試並回饋給您! –

+0

重新審視一下,並通過一些額外的更改,我能夠得到它的工作!非常感謝它爲此提供的幫助。巨大的學習曲線 –

+0

你是受歡迎的!祝你好運:) –