2017-11-09 16 views
0

私はLaravelでアプリを構築しており、プッシャーを使ってユーザーに通知しています。誰かがイベントをしたときに通知がユーザーに送信されます。Pusher + Laravelでグループに通知する

例:ようなイベント、コメントイベント、...

私はすでにプッシャーで送信NotIで完了

が、それは、すべてのユーザーに送信します。イベントが発生したときにユーザーのグループにnotiを送信したい

例:あなたの投稿に誰かがコメントしたとき、私はあなたに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:私はプライベートチャネルとプレゼンスチャネルについて既に研究していますが、私の場合はそうではありません。

+0

グループごとに別々のチャンネルを作成しないでください。 – sumit

+0

各ユーザーグループを意味していますか?アプリケーションには多くのイベントがあるため、いいえ。各イベントは、グループユーザーのために恒久的なチャンネルを作成することはできませんので、それが発射されたときにグループのユーザーの違いがあります。 – Jusfunny

+0

[docs](https://pusher.com/docs/client_api_guide/client_private_channels)に従ったことがありますか? – Tpojka

答えて

1

まずましょうレビュー:

チャンネルは、ユーザーが購読できるものです。彼らはする必要はありません、彼らはできます。 イベントは、チャンネルを通じてユーザーに渡されるものです。前記チャネルに加入したユーザのみが前記イベントを受信する。

ユーザーは、1つまたは複数のチャンネルを購読することができます。したがって、あなたのケースでは、現在、すべてのユーザーが1つのチャンネルを購読しているかのように聞こえます。なぜ各ユーザーを自分のチャンネルに購読しないのですか?あなたが持つことができるチャンネルの数を制限する必要も制限もありませんので、これは問題ありません。次に、すべてのユーザーに通知を希望する場合は、すべてのチャンネルのチャンネルにプッシュできますが、特定のユーザーのみに通知する場合は、チャンネル登録したチャンネルにイベントをプッシュできますに。

トラックを維持するという点では、ユーザーIDを使用してチャンネルに名前を付けるのがよいでしょう。

任意の数のユーザーが任意の数のチャンネルを購読できます。うまくいけば助けて!

+0

はい、ありがとうございました。 IDでユーザーのチャンネルを作成してもうまくいきました。しかし、それは非常に遅い多くのチャネル(多くのユーザー)に通知を送信するようだ。 – Jusfunny

+0

例:ユーザーのコメントがあった場合、戻りビューの前に$ push-> trigger(...)を実行しますが、非常に遅く、アクションコメントも遅くなりました。スピードを上げるための考え? – Jusfunny

関連する問題