1
0
Fork 0
mirror of synced 2024-10-02 02:07:04 +13:00

fix(realtime): handle SQL error code 'HY000'

SQL can throw an error where the code is a string like 'HY000', but
$server->close() expects an integer. This change ensures we only pass
an integer into $server->close().
This commit is contained in:
Steven Nguyen 2024-05-08 22:48:25 +00:00 committed by GitHub
parent 6b31f1323d
commit e5f49b420c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -511,16 +511,22 @@ $server->onOpen(function (int $connection, SwooleRequest $request) use ($server,
} catch (Throwable $th) {
call_user_func($logError, $th, "initServer");
// Handle SQL error code is 'HY000'
$code = $th->getCode();
if (!is_int($code)) {
$code = 500;
}
$response = [
'type' => 'error',
'data' => [
'code' => $th->getCode(),
'code' => $code,
'message' => $th->getMessage()
]
];
$server->send([$connection], json_encode($response));
$server->close($connection, $th->getCode());
$server->close($connection, $code);
if (App::isDevelopment()) {
Console::error('[Error] Connection Error');