1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 09:34:05 +00:00

Instead of just forgetting the old broadcaster instance, bind the new one

This commit is contained in:
lukinovec 2022-12-13 11:59:23 +01:00
parent 14333a253d
commit 60911aabad

View file

@ -4,8 +4,9 @@ declare(strict_types=1);
namespace Stancl\Tenancy; // todo new Overrides namespace?
use Illuminate\Broadcasting\Broadcasters\Broadcaster;
use Illuminate\Broadcasting\BroadcastManager;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Broadcasting\Broadcasters\Broadcaster;
use Illuminate\Contracts\Broadcasting\Broadcaster as BroadcasterContract;
class TenancyBroadcastManager extends BroadcastManager
@ -26,11 +27,11 @@ class TenancyBroadcastManager extends BroadcastManager
/** @var Broadcaster|null $cachedBroadcaster */
$cachedBroadcaster = $this->drivers[$name] ?? null;
$this->app->forgetInstance(BroadcasterContract::class);
/** @var Broadcaster $broadcaster */
$broadcaster = $this->resolve($name);
// If there is a cached broadcaster, give its channels to the newly resolved one
if ($cachedBroadcaster) {
$cachedBroadcaster = invade($cachedBroadcaster);
@ -39,6 +40,8 @@ class TenancyBroadcastManager extends BroadcastManager
}
}
$this->app->singleton(BroadcasterContract::class, fn(Application $app) => $broadcaster);
return $broadcaster;
}