1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 18:34:04 +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? namespace Stancl\Tenancy; // todo new Overrides namespace?
use Illuminate\Broadcasting\Broadcasters\Broadcaster;
use Illuminate\Broadcasting\BroadcastManager; use Illuminate\Broadcasting\BroadcastManager;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Broadcasting\Broadcasters\Broadcaster;
use Illuminate\Contracts\Broadcasting\Broadcaster as BroadcasterContract; use Illuminate\Contracts\Broadcasting\Broadcaster as BroadcasterContract;
class TenancyBroadcastManager extends BroadcastManager class TenancyBroadcastManager extends BroadcastManager
@ -26,11 +27,11 @@ class TenancyBroadcastManager extends BroadcastManager
/** @var Broadcaster|null $cachedBroadcaster */ /** @var Broadcaster|null $cachedBroadcaster */
$cachedBroadcaster = $this->drivers[$name] ?? null; $cachedBroadcaster = $this->drivers[$name] ?? null;
$this->app->forgetInstance(BroadcasterContract::class);
/** @var Broadcaster $broadcaster */ /** @var Broadcaster $broadcaster */
$broadcaster = $this->resolve($name); $broadcaster = $this->resolve($name);
// If there is a cached broadcaster, give its channels to the newly resolved one
if ($cachedBroadcaster) { if ($cachedBroadcaster) {
$cachedBroadcaster = invade($cachedBroadcaster); $cachedBroadcaster = invade($cachedBroadcaster);
@ -39,6 +40,8 @@ class TenancyBroadcastManager extends BroadcastManager
} }
} }
$this->app->singleton(BroadcasterContract::class, fn(Application $app) => $broadcaster);
return $broadcaster; return $broadcaster;
} }