diff --git a/client/src/components/ConferencePage/ConferencePage.tsx b/client/src/components/ConferencePage/ConferencePage.tsx index 0a6553f..497f5bb 100644 --- a/client/src/components/ConferencePage/ConferencePage.tsx +++ b/client/src/components/ConferencePage/ConferencePage.tsx @@ -1,4 +1,5 @@ import React, { FunctionComponent, useEffect } from 'react'; +import { Config } from '../../config'; import { useUserProfile } from '../../gql/queries/profile'; import { useConference } from '../../hooks/useConference'; import { Page } from '../Page'; @@ -13,8 +14,6 @@ const StatusThumbsUp = 'thumbs-up'; const StatusThumbsDown = 'thumbs-down'; const StatusNoVote = 'no-vote'; -const HeartbeatInterval = 5000; - export const ConferencePage:FunctionComponent = () => { const { user } = useUserProfile(); const { uuid, data, setNickname, setEmail, ping, setStatus, forget } = useConference(); @@ -29,7 +28,7 @@ export const ConferencePage:FunctionComponent = () => { useEffect(() => { ping(); - const intervalId = setInterval(() => ping(), HeartbeatInterval); + const intervalId = setInterval(() => ping(), Config.conferenceHeartbeatInterval + (Math.random() * Config.conferenceHeartbeatInterval/2)); return () => clearInterval(intervalId); }, []); @@ -89,7 +88,7 @@ export const ConferencePage:FunctionComponent = () => { if (p === uuid) return null; - if (now.getTime() > lastHeartBeat.getTime() + HeartbeatInterval) { + if (now.getTime() > lastHeartBeat.getTime() + Config.conferenceHeartbeatInterval*2) { forget(p); return null; } diff --git a/client/src/config.ts b/client/src/config.ts index 51b9803..a9b4fb9 100644 --- a/client/src/config.ts +++ b/client/src/config.ts @@ -3,6 +3,7 @@ export const Config = { logoutURL: get("logoutURL", "http://localhost:8081/logout"), graphQLEndpoint: get("graphQLEndpoint", "http://localhost:8081/api/v1/graphql"), subscriptionEndpoint: get("subscriptionEndpoint", "ws://localhost:8081/api/v1/graphql"), + conferenceHeartbeatInterval: get("conferenceHeartbeatInterval", 10000), }; function get(key: string, defaultValue: T):T {