Server 对象
目录
每个服务器、每个协议端口,在 imi 中都有一个 Server 对象。
如何拿到 Server 对象
在控制器中:
$this->server
在任意地方:
\Imi\RequestContext::getServer();
公共方法
/**
* 获取服务器名称.
*/
public function getName(): string;
/**
* 获取协议名称.
*/
public function getProtocol(): string;
/**
* 获取配置信息.
*/
public function getConfig(): array;
/**
* 获取容器对象
*/
public function getContainer(): Container;
/**
* 获取Bean对象
*
* @param mixed $params
*/
public function getBean(string $name, ...$params): object;
/**
* 是否为长连接服务
*/
public function isLongConnection(): bool;
/**
* 是否支持 SSL.
*/
public function isSSL(): bool;
/**
* 开启服务
*/
public function start(): void;
/**
* 终止服务
*/
public function shutdown(): void;
/**
* 重载服务
*/
public function reload(): void;
/**
* 调用服务器方法.
*
* @param mixed ...$args
*
* @return mixed
*/
public function callServerMethod(string $methodName, ...$args);
Swoole Server 独有方法
/**
* 获取 swoole 服务器对象
*/
public function getSwooleServer(): Server;
/**
* 获取 swoole 监听端口.
*/
public function getSwoolePort(): Port;
/**
* 是否为子服务器.
*/
public function isSubServer(): bool;
/**
* 组是否存在.
*/
public function hasGroup(string $groupName): bool;
/**
* 创建组,返回组对象
*/
public function createGroup(string $groupName, int $maxClients = -1): Group;
/**
* 获取组对象,不存在返回null.
*/
public function getGroup(string $groupName): ?Group;
/**
* 加入组,组不存在则自动创建.
*
* @param int|string $clientId
*/
public function joinGroup(string $groupName, $clientId): void;
/**
* 离开组,组不存在则自动创建.
*
* @param int|string $clientId
*/
public function leaveGroup(string $groupName, $clientId): void;
/**
* 调用组方法.
*
* @param mixed ...$args
*
* @return mixed
*/
public function groupCall(string $groupName, string $methodName, ...$args);
/**
* 获取所有组列表.
*
* @return \Imi\Server\Group\Group[]
*/
public function getGroups(): array;
Workerman Server 独有方法
/**
* 获取 Workerman Worker 对象
*/
public function getWorker(): Worker;
/**
* 组是否存在.
*/
public function hasGroup(string $groupName): bool;
/**
* 创建组,返回组对象
*/
public function createGroup(string $groupName, int $maxClients = -1): Group;
/**
* 获取组对象,不存在返回null.
*/
public function getGroup(string $groupName): ?Group;
/**
* 加入组,组不存在则自动创建.
*
* @param int|string $clientId
*/
public function joinGroup(string $groupName, $clientId): void;
/**
* 离开组,组不存在则自动创建.
*
* @param int|string $clientId
*/
public function leaveGroup(string $groupName, $clientId): void;
/**
* 调用组方法.
*
* @param mixed ...$args
*
* @return mixed
*/
public function groupCall(string $groupName, string $methodName, ...$args);
/**
* 获取所有组列表.
*
* @return \Imi\Server\Group\Group[]
*/
public function getGroups(): array;
PHP-FPM Server 独有方法
无