Laravel广播推送事件多次发射

时间:2016-12-02 17:04:27

标签: laravel laravel-5.1

我有一个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];
    }
}

我正在使用Supervisor(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

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

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

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

我使用使用 pusher API 的 websocket-laravel。