mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 11:44:04 +00:00
Instead of just forgetting the old broadcaster instance, bind the new one
This commit is contained in:
parent
14333a253d
commit
60911aabad
1 changed files with 6 additions and 3 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue