From 979758cab82743a92db97d2c05d7dad8dc6948e1 Mon Sep 17 00:00:00 2001 From: Mike Grabowski Date: Tue, 5 Nov 2024 00:06:32 +0400 Subject: [PATCH 1/3] feat: initial commit --- example/App.tsx | 190 ------------------ example/index.js | 4 +- example/package.json | 2 +- example/server.ts | 31 --- example/server/createServer.ts | 39 ++++ example/server/img.jpg | Bin 0 -> 234347 bytes example/server/index.ts | 41 ++++ example/server/payloads.ts | 37 ++++ example/tests/benchmark.tsx | 346 +++++++++++++++++++++++++++++++++ 9 files changed, 466 insertions(+), 224 deletions(-) delete mode 100644 example/App.tsx delete mode 100644 example/server.ts create mode 100644 example/server/createServer.ts create mode 100644 example/server/img.jpg create mode 100644 example/server/index.ts create mode 100644 example/server/payloads.ts create mode 100644 example/tests/benchmark.tsx diff --git a/example/App.tsx b/example/App.tsx deleted file mode 100644 index 4bcfd9c..0000000 --- a/example/App.tsx +++ /dev/null @@ -1,190 +0,0 @@ -import { useCallback, useState } from 'react' -import { ActivityIndicator, Button, Platform, StyleSheet, Text, View } from 'react-native' -import { WebSocket as FastWebSocket } from 'react-native-fast-ws' - -type Result = { - outgoingTime: number - incomingTime: number -} - -const encoder = new TextEncoder() - -export function App() { - return ( - - - - - ) -} - -function Results({ - fastResults, - wsResults, -}: { - title: string - fastResults: Result - wsResults: Result -}) { - return ( - - - - FastWS - WebSocket - - - - - ) -} - -function ResultsRow({ - title, - fastResult, - wsResult, -}: { - title: string - fastResult: number - wsResult: number -}) { - const isFastBetter = fastResult < wsResult - return ( - - {title} - - - - ) -} - -function ResultItem({ result, isBetter }: { result: number; isBetter: boolean }) { - return ( - {`${result.toFixed(2)}`} - ) -} - -function TestCase({ - payload, - title, -}: { - payload: string | ArrayBuffer | Uint8Array - title: string -}) { - const [fastResult, setFastResult] = useState(null) - const [wsResult, setWsResult] = useState(null) - const [loading, setLoading] = useState(false) - const runTest = useCallback(async () => { - if (loading) { - return - } - setLoading(true) - const fastRes = await testWebsocketMessages({ - // @ts-ignore - Ws: FastWebSocket, - outgoing: OUTGOING, - incoming: INCOMING, - payload, - }) - setFastResult(fastRes) - const wsRes = await testWebsocketMessages({ - Ws: WebSocket, - outgoing: OUTGOING, - incoming: INCOMING, - payload, - }) - setWsResult(wsRes) - setLoading(false) - }, [loading]) - - return ( - -