2017-06-06 151 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

你是受欢迎的!祝你好运:) –