Смена драйвера вещания на лету на laravel - PullRequest
1 голос
/ 27 марта 2020

У меня есть несколько учетных записей для моего мультитенантного приложения laravel с этой конфигурацией:

'pusher_it' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_APP_IT_KEY'),
        'secret' => env('PUSHER_APP_IT_SECRET'),
        'app_id' => env('PUSHER_APP_IT_ID'),
        'options' => [
            'cluster' => 'eu',
            'useTLS' => true
        ],
    ],

    'pusher_es' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_APP_ES_KEY'),
        'secret' => env('PUSHER_ES_ES_SECRET'),
        'app_id' => env('PUSHER_ES_ES_ID'),
        'options' => [
            'cluster' => 'eu',
            'useTLS' => true
        ],
    ],

    'pusher_pt' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_APP_PT_KEY'),
        'secret' => env('PUSHER_APP_PT_SECRET'),
        'app_id' => env('PUSHER_APP_PT_ID'),
        'options' => [
            'cluster' => 'eu',
            'useTLS' => true
        ],
    ],

Когда я отправляю новое уведомление:

Notification::send($usersToNotify, (new VehicleFailureEstimateNotification($vehicleFailureEstimate))->locale(App::getLocale()));

Я бы установил на настройка fly pusher:

class VehicleFailureEstimateNotification extends Notification
{
use Queueable;
/**
 * @var VehicleFailureEstimate
 */
private $vehicleFailureEstimate;

/**
 * Create a new notification instance.
 *
 * @return void
 */
public function __construct(VehicleFailureEstimate $vehicleFailureEstimate)
{
    Broadcast::setDefaultDriver('pusher_'.$this->locale);
    Broadcast::connection('pusher_'.$this->locale);
    $this->vehicleFailureEstimate = $vehicleFailureEstimate;
}

Но уведомление всегда запускается через .env default BROADCAST_DRIVER = pusher_it

Можете ли вы мне помочь? Спасибо

...