Php 使用Pusher+向组用户发送通知;拉维尔

Php 使用Pusher+向组用户发送通知;拉维尔,php,laravel,events,pusher,Php,Laravel,Events,Pusher,我正在用Laravel构建一个应用程序,并使用Pusher向用户发送通知。当有人进行事件时,通知将发送给用户 Ex:Like event,comment event,… 我已经用Pusher完成了发送noti,但它会发送给所有用户。所以我想在触发事件时向用户组发送noti 例:当有人对你的帖子发表评论时,我只希望app send noti发送给你(所有者),并且所有用户都已经对该帖子发表了评论 我的代码调用推动者: var pusher = new Pusher('MY_KEY', {

我正在用Laravel构建一个应用程序,并使用Pusher向用户发送通知。当有人进行事件时,通知将发送给用户

Ex:Like event,comment event,…

我已经用Pusher完成了发送noti,但它会发送给所有用户。所以我想在触发事件时向用户组发送noti

例:当有人对你的帖子发表评论时,我只希望app send noti发送给你(所有者),并且所有用户都已经对该帖子发表了评论

我的代码调用推动者:

var pusher = new Pusher('MY_KEY', {
    encrypted: true,
    cluster: 'us2'
});

// Comment event channel
var channel = pusher.subscribe('private-commented-event');
channel.bind('App\\Events\\PostWasCommented', function(data) {
    alert('Post was commented!');
});
对普什有什么想法吗

p/s:我已经研究了私人频道和状态频道,但在我的案例中并非如此。

首先让我们回顾一下:

频道是用户可以订阅的东西。他们不必,他们可以。 事件是通过通道传递给用户的东西。只有订阅了上述频道的用户才会收到上述活动

用户可以订阅一个或多个频道。因此,在您的情况下,听起来好像您的所有用户都订阅了一个频道。为什么不为每个用户订阅他们自己的频道?没有限制,也没有任何必要限制你可以拥有的频道数量,所以这很好。然后,如果您希望通知所有用户,您可以将事件推送到他们都已订阅的频道,但如果您只希望通知特定用户,则可以将事件推送到他们刚刚订阅的频道

在跟踪方面,我的建议是使用用户ID命名频道


记住,任何数量的用户都可以订阅任何数量的频道。希望这有帮助

你为什么不为每个用户组制作单独的频道呢?没有,因为应用程序有很多事件。每个事件在触发时都会有不同的组用户,因此无法为组用户创建永久通道。您遵循了吗?是的,当然!我不知道如何将noti发送给组用户,另一个激发的事件将发送给另一个组用户。是的,谢谢您的建议。我通过id创建了用户频道,效果很好。但是发送通知给很多频道(很多用户)的速度似乎很慢。例如:当用户评论时,我会在返回视图之前运行$push->trigger(…),但是速度很慢,并且使操作评论也很慢。有提高速度的想法吗?