From e4451f7e0b7529a320fe40593c463636a5f9cb24 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 27 Aug 2021 18:33:09 +0200 Subject: [PATCH] fix(realtime): minor improvements --- app/realtime.php | 8 ++++++-- tests/benchmarks/ws.js | 22 +++++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/realtime.php b/app/realtime.php index 93d3fa3595..acd8fada46 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -204,6 +204,10 @@ $server->onWorkerStart(function (int $workerId) use ($server, $register, $stats, } foreach ($stats as $projectId => $value) { + if (!array_key_exists($projectId, $payload)) { + continue; + } + $event = [ 'project' => 'console', 'roles' => ['team:' . $value['teamId']], @@ -451,8 +455,8 @@ $server->onOpen(function (int $connection, SwooleRequest $request) use ($server, if (App::isDevelopment()) { Console::error("[Error] Connection Error"); - Console::error("[Error] Code: " . $response['code']); - Console::error("[Error] Message: " . $response['message']); + Console::error("[Error] Code: " . $response['data']['code']); + Console::error("[Error] Message: " . $response['data']['message']); } if ($th instanceof PDOException) { diff --git a/tests/benchmarks/ws.js b/tests/benchmarks/ws.js index 22754274f9..0c218f4e46 100644 --- a/tests/benchmarks/ws.js +++ b/tests/benchmarks/ws.js @@ -6,12 +6,12 @@ import { check } from 'k6'; export let options = { stages: [ - { - duration: '10s', + { + duration: '10s', target: 500 }, - { - duration: '1m', + { + duration: '1m', target: 500 }, ], @@ -21,7 +21,7 @@ export default function () { // const url = new URL('wss://appwrite-realtime.monitor-api.com/v1/realtime'); // url.searchParams.append('project', '604249e6b1a9f'); const url = new URL('ws://localhost/v1/realtime'); - url.searchParams.append('project', 'console'); + url.searchParams.append('project', '612625394933c'); url.searchParams.append('channels[]', 'files'); const res = ws.connect(url.toString(), function (socket) { @@ -41,10 +41,18 @@ export default function () { check(payload, { 'connection opened': (r) => connection, 'message received': (r) => checked, - 'channels are right': (r) => r === `{"files":0}` + 'channels are right': (r) => r === JSON.stringify({ + "type": "connected", + "data": { + "channels": [ + "files" + ], + "user": null + } + }) }) socket.close(); - }, 5000); + }, 5000); }); check(res, { 'status is 101': (r) => r && r.status === 101 });