From e554a2a87771c0bf948e3f0757d4d17ff972f2a9 Mon Sep 17 00:00:00 2001 From: Ginger Wong Date: Thu, 8 Oct 2020 00:26:24 -0700 Subject: [PATCH] add connectedclients endpoint --- web/pages/components/connected-clients.tsx | 39 ++++++++++++++++++++++ web/pages/home.tsx | 5 ++- web/pages/utils/apis.ts | 4 +++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 web/pages/components/connected-clients.tsx diff --git a/web/pages/components/connected-clients.tsx b/web/pages/components/connected-clients.tsx new file mode 100644 index 000000000..4261949e1 --- /dev/null +++ b/web/pages/components/connected-clients.tsx @@ -0,0 +1,39 @@ +import React, { useState, useEffect } from 'react'; +import { CONNECTED_CLIENTS, fetchData, FETCH_INTERVAL } from '../utils/apis'; + +export default function HardwareInfo() { + const [clients, setClients] = useState({}); + + const getInfo = async () => { + try { + const result = await fetchData(CONNECTED_CLIENTS); + console.log("viewers result", result) + + setClients({ ...result }); + + } catch (error) { + setClients({ ...clients, message: error.message }); + } + }; + + useEffect(() => { + let getStatusIntervalId = null; + + getInfo(); + getStatusIntervalId = setInterval(getInfo, FETCH_INTERVAL); + + // returned function will be called on component unmount + return () => { + clearInterval(getStatusIntervalId); + } + }, []); + + return ( +
+

Connected Clients

+
+ {JSON.stringify(clients)} +
+
+ ); +} diff --git a/web/pages/home.tsx b/web/pages/home.tsx index f30572156..530a9e721 100644 --- a/web/pages/home.tsx +++ b/web/pages/home.tsx @@ -3,6 +3,7 @@ import React, { useState, useEffect } from 'react'; import BroadcastInfo from './components/broadcast-info'; import HardwareInfo from './components/hardware-info'; import ViewerInfo from './components/viewer-info'; +import ConnectedClients from './components/connected-clients'; export default function HomeView(props) { const { broadcastActive, broadcaster, message } = props; @@ -12,6 +13,7 @@ export default function HomeView(props) { + ) : null; @@ -24,7 +26,8 @@ export default function HomeView(props) {

Utilities

- (these dont do anything yet) +

(these dont do anything yet)

+ {disconnectButton} diff --git a/web/pages/utils/apis.ts b/web/pages/utils/apis.ts index af85c89bc..891ad6b64 100644 --- a/web/pages/utils/apis.ts +++ b/web/pages/utils/apis.ts @@ -22,6 +22,10 @@ export const SERVER_CONFIG = `${API_LOCATION}serverconfig`; // Get viewer count over time export const VIEWERS_OVER_TIME = `${API_LOCATION}viewersOverTime`; +// Get currently connected clients +export const CONNECTED_CLIENTS = `${API_LOCATION}clients`; + + // Get hardware stats export const HARDWARE_STATS = `${API_LOCATION}hardwarestats`;