From b898cd9434b7e7814231ade9353191e2906148fc Mon Sep 17 00:00:00 2001 From: vrushal14 Date: Mon, 29 Jan 2024 01:04:33 +0530 Subject: [PATCH 1/3] websocket init - push events --- .env | 1 + src/App.jsx | 4 +-- src/usecases/utilities/StreamEvents.mjs | 37 +++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/usecases/utilities/StreamEvents.mjs diff --git a/.env b/.env index 0b00933..e9e7aa3 100644 --- a/.env +++ b/.env @@ -1,4 +1,5 @@ REACT_APP_SERVER_URL=http://localhost:2001 +REACT_APP_SOCKET_URL=http://localhost:2002 REACT_APP_BUFFERED_PUSH_ENABLED=true REACT_APP_BUFFERED_STORAGE_LIMIT=5 diff --git a/src/App.jsx b/src/App.jsx index b5405bd..c28a423 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,4 +1,4 @@ -import pushEventsToBrokers from "./usecases/utilities/PushEventsToBroker.mjs"; +import publishEventsToBrokers from "./usecases/utilities/StreamEvents.mjs"; import ClickStreamView from "./usecases/clickStream/ClickStreamView"; import StateChangeView from "./usecases/stateChange/StateChangeView"; import getDeviceIPAddress from "./usecases/utilities/GetDeviceIPAddress.mjs"; @@ -15,7 +15,7 @@ function App() { function onEventCreationHandler(eventType, data) { const eventPayload = createEventPayload(eventType, ip, data); - pushEventsToBrokers(eventPayload); + publishEventsToBrokers(eventPayload); setEventLogs((prevLogs) => [...prevLogs, eventPayload]); } diff --git a/src/usecases/utilities/StreamEvents.mjs b/src/usecases/utilities/StreamEvents.mjs new file mode 100644 index 0000000..f76b14b --- /dev/null +++ b/src/usecases/utilities/StreamEvents.mjs @@ -0,0 +1,37 @@ +import { CLICK_STREAM_EVENT } from "../../entities/EventType.mjs" +import dotenv from 'dotenv' +import io from 'socket.io-client'; + +dotenv.config(); +const socket_url = process.env.REACT_APP_SOCKET_URL +const BUFFERED_STORAGE_LIMIT = process.env.REACT_APP_BUFFERED_STORAGE_LIMIT +const buffered_push = process.env.REACT_APP_BUFFERED_PUSH_ENABLED +let bufferedStorage = [] + +console.log(process.env) + +const socket = io(socket_url); + +async function publishEvent(payload) { + return socket.emit(payload.eventType, { data: payload }); +} + +export default async function publishEventsToBroker(eventPayload) { + if (buffered_push === 'true') { + if (eventPayload.eventType === CLICK_STREAM_EVENT) { + bufferedStorage.push(eventPayload) + if (bufferedStorage.length >= BUFFERED_STORAGE_LIMIT) { + const bufferedData = bufferedStorage + bufferedStorage = [] + await publishEvent(eventPayload) + console.log("Pushed events : ", bufferedData) + return 1 + } else { + return 0 + } + } + } + await publishEvent(eventPayload) + console.log("Pushed event : ", eventPayload) + return 1 +} \ No newline at end of file From 5a98b2449ff058c741da12c3d557fdc72b2b8c3c Mon Sep 17 00:00:00 2001 From: vrushal14 Date: Sun, 4 Feb 2024 20:13:58 +0530 Subject: [PATCH 2/3] socket url change --- .env | 1 - 1 file changed, 1 deletion(-) diff --git a/.env b/.env index e9e7aa3..0b00933 100644 --- a/.env +++ b/.env @@ -1,5 +1,4 @@ REACT_APP_SERVER_URL=http://localhost:2001 -REACT_APP_SOCKET_URL=http://localhost:2002 REACT_APP_BUFFERED_PUSH_ENABLED=true REACT_APP_BUFFERED_STORAGE_LIMIT=5 From 2cf22dd14f8d7fc1aa21032420cb55bdd7d01415 Mon Sep 17 00:00:00 2001 From: vrushal14 Date: Sun, 4 Feb 2024 20:16:47 +0530 Subject: [PATCH 3/3] socket url change --- src/usecases/utilities/StreamEvents.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/usecases/utilities/StreamEvents.mjs b/src/usecases/utilities/StreamEvents.mjs index f76b14b..12a5cd0 100644 --- a/src/usecases/utilities/StreamEvents.mjs +++ b/src/usecases/utilities/StreamEvents.mjs @@ -3,7 +3,7 @@ import dotenv from 'dotenv' import io from 'socket.io-client'; dotenv.config(); -const socket_url = process.env.REACT_APP_SOCKET_URL +const socket_url = process.env.REACT_APP_SERVER_URL + "/websocket" const BUFFERED_STORAGE_LIMIT = process.env.REACT_APP_BUFFERED_STORAGE_LIMIT const buffered_push = process.env.REACT_APP_BUFFERED_PUSH_ENABLED let bufferedStorage = []