【问题标题】:Laravel Broadcast Pusher Event Firing Multiple TimesLaravel Broadcast Pusher 事件多次触发
【发布时间】:2017-04-17 16:09:12
【问题描述】:

我有这个 Laravel 5.1 事件,我在存储聊天时触发。但它正在向 Pusher 创建多个广播

<?php namespace App\Events;

use App\Events\Event;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;

class ChatSent extends Event implements ShouldBroadcast
{
    use SerializesModels;

    public $channel;
    public $chat;

    public function __construct($channel,$chat)
    {
        $this->channel = $channel;
        $this->chat = $chat;
    }

    public function broadcastOn()
    {
        return ['private-'.$this->channel];
    }
}

我正在使用主管(supervisord)和多个工人......不确定这是否会有所不同......这是 laravel.conf:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/app/artisan queue:work database --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=ubuntu
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/app/worker.log

知道为什么会发生这种情况吗?

【问题讨论】:

  • 这个运气好吗?我也面临同样的问题?

标签: laravel laravel-5.1


【解决方案1】:

我认为问题不在于后端,也不在于显示消息,而在于广播,因为在我的情况下,我能够存储一次消息,并显示与广播相同的内容。

所以可能是 pusher/websocket 包中的问题。

我使用 websocket-laravel,它使用 pusher API。

【讨论】:

  • 我看不出这如何回答本页顶部的问题,但它应该。请edit根据How to Answer或删除答案。否则,它可能会被标记为“不是答案”并被删除。
  • 我无法对问题添加评论,因为:您必须有 50 名声望才能发表评论
  • 您知道您没有的评论权限,甚至可以用文字表达。您知道规则 meta.stackexchange.com/questions/214173/… 。在这种情况下,请不要决定滥用不同的机制(答案)来处理它不适合且不允许您做的事情。所以请把它变成一个明显的答案或删除它。
  • 这是使 StackOverflow 成为您决定寻求帮助的成对问答集合的规则之一。您确实很欣赏 StackOverflow 对用户施加的规则。请不要指望您会有例外。
  • 是的,但我建议一种方法来解决他的问题,因为我确信问题不在后端,也不在前端,它是广播问题或包错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多