/** * Callback when a client suffers an error * * @param \WebSocketServer\Event\Event $event The event * @param \WebSocketServer\Socket\Client $client The client * @param string $message The error description */ public function onError(Event $event, Client $client, $message) { if ($user = $client->getAppData('user')) { $userId = $user->getId(); } else { $userId = '#' . $client->getId(); } $client->getServer()->sendToAllButClient($userId . ' fell over', $client); }
/** * Remove a client (stream) of the user * * @param \WebSocketServer\Socket\Client $client The new client to remove of the user */ public function removeClient(Client $client) { unset($this->clients[$client->getId()]); }
/** * Disconnect client * * @param \WebSocketServer\Socket\Client $client The client to disconnect * * @throws \OutOfRangeException When passed client does not belong to this server */ public function removeClient(Client $client) { if ($client->getServer() !== $this) { throw new \OutOfRangeException('Client does not belong to this server'); } if ($client->isConnected()) { $client->disconnect(); } $id = $client->getId(); if (isset($this->clients[$id])) { unset($this->clients[$id], $this->sockets[$id]); $this->trigger('clientremove', $this, $client); } }