From 96bbe0fef11197464099ddda3a92842f275fecd3 Mon Sep 17 00:00:00 2001 From: Rama Priyanto Date: Thu, 2 Apr 2026 08:52:18 +0700 Subject: [PATCH] fix websocket --- app/dashboard/etle/page.tsx | 49 ++++++++++++++++++++++++++----------- components/socket.tsx | 2 +- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/app/dashboard/etle/page.tsx b/app/dashboard/etle/page.tsx index dbf6cf8..c2a56cf 100644 --- a/app/dashboard/etle/page.tsx +++ b/app/dashboard/etle/page.tsx @@ -30,6 +30,13 @@ const dummy = [ { url: "/sample-1.jpg" }, ] +const stream_dummy = [ + "/app/static/uploads/ds1.mp4", + "/app/static/uploads/ds2.mp4", + "/app/static/uploads/ds3.mp4", + "/app/static/uploads/ds4.mp4", +] + export default function Etle() { const router = useRouter() const [sessionId, setSessionId] = useState(null) @@ -38,27 +45,34 @@ export default function Etle() { const [confidence, setConfidence] = useState(null) const [history, setHistory] = useState([]) + const startDetection = (index: number) => { + const stream = stream_dummy[index] + + socket.emit("stop_detection") + socket.emit("start_detection", { + stream_url: stream, + }) + } + useEffect(() => { if (!socket.connected) { socket.connect() } socket.on("connected", (data) => { - console.log("session", data.session_id) setSessionId(data.session_id) - }) - - socket.emit("start_detection", { - stream_url: "/app/static/uploads/ds1", + socket.emit("start_detection", { + stream_url: "/app/static/uploads/ds1.mp4", + }) }) socket.on("video_frame", (data) => { - console.log("frame", data.frame) - setImageSrc(`data:image/jpeg;base64,${data.frame}`) + const thumb = `data:image/jpeg;base64,${data.frame}` + setImageSrc(thumb) + setHistory((prev) => [thumb, ...prev].slice(0, 20)) }) socket.on("plate_detected", (data) => { - console.log("plate", data.plate_text) setPlate(data.plate_text) setConfidence(data.confidence ?? null) @@ -66,9 +80,9 @@ export default function Etle() { setHistory((prev) => [thumb, ...prev].slice(0, 20)) }) - socket.on("detection_stopped", (data) => { - console.log("Total:", data.total) - }) + // socket.on("detection_stopped", (data) => { + // console.log("Total:", data.total) + // }) socket.on("error", (data) => { console.error(data.message) @@ -97,6 +111,13 @@ export default function Etle() {

TRAFFIC VIOLATIONS

{/* */} +
+ {stream_dummy.map((stream, index) => ( + + ))} +
{imageSrc && (
- Total Image: 10 + Total Image: {history.length}
{" "} - {dummy.map((item, index) => ( + {history.map((item, index) => (