2018-11-21 11:13:40 +00:00
|
|
|
<?php
|
|
|
|
|
|
2018-11-27 15:21:31 +00:00
|
|
|
namespace BeyondCode\LaravelWebSockets\WebSockets\Channels;
|
2018-11-21 11:13:40 +00:00
|
|
|
|
2018-11-21 21:36:50 +00:00
|
|
|
use Ratchet\ConnectionInterface;
|
|
|
|
|
|
2018-12-10 19:47:52 +00:00
|
|
|
interface ChannelManager
|
2018-11-21 11:13:40 +00:00
|
|
|
{
|
2020-08-18 17:21:22 +00:00
|
|
|
/**
|
|
|
|
|
* Find a channel by name or create one.
|
|
|
|
|
*
|
|
|
|
|
* @param mixed $appId
|
|
|
|
|
* @param string $channelName
|
|
|
|
|
* @return \BeyondCode\LaravelWebSockets\WebSockets\Channels\Channel
|
|
|
|
|
*/
|
|
|
|
|
public function findOrCreate($appId, string $channelName): Channel;
|
2018-11-21 21:11:44 +00:00
|
|
|
|
2020-08-18 17:21:22 +00:00
|
|
|
/**
|
|
|
|
|
* Find a channel by name.
|
|
|
|
|
*
|
|
|
|
|
* @param mixed $appId
|
|
|
|
|
* @param string $channelName
|
|
|
|
|
* @return \BeyondCode\LaravelWebSockets\WebSockets\Channels\Channel
|
|
|
|
|
*/
|
|
|
|
|
public function find($appId, string $channelName): ?Channel;
|
2018-12-01 10:52:47 +00:00
|
|
|
|
2020-08-18 17:21:22 +00:00
|
|
|
/**
|
|
|
|
|
* Get all channels.
|
|
|
|
|
*
|
|
|
|
|
* @param mixed $appId
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
public function getChannels($appId): array;
|
2018-11-21 11:13:40 +00:00
|
|
|
|
2020-08-18 17:21:22 +00:00
|
|
|
/**
|
|
|
|
|
* Get the connections count on the app.
|
|
|
|
|
*
|
|
|
|
|
* @param mixed $appId
|
|
|
|
|
* @return int
|
|
|
|
|
*/
|
|
|
|
|
public function getConnectionCount($appId): int;
|
2018-12-01 11:26:08 +00:00
|
|
|
|
2020-08-18 17:21:22 +00:00
|
|
|
/**
|
|
|
|
|
* Remove connection from all channels.
|
|
|
|
|
*
|
|
|
|
|
* @param \Ratchet\ConnectionInterface $connection
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
2018-12-10 19:47:52 +00:00
|
|
|
public function removeFromAllChannels(ConnectionInterface $connection);
|
2018-12-04 21:22:33 +00:00
|
|
|
}
|