private function tryAppOnOpen(int $clientId, $onHandshakeResult) : \Generator
{
try {
$onOpenResult = $this->application->onOpen($clientId, $onHandshakeResult);
if ($onOpenResult instanceof \Generator) {
$onOpenResult = (yield from $onOpenResult);
}
} catch (\Throwable $e) {
yield from $this->onAppError($clientId, $e);
}
}