-
Notifications
You must be signed in to change notification settings - Fork 211
Open
Description
there's no lifecycle cleanup for the MJPEG stream that comes from web_video_server. Key spots:
on our custom UI
- the UI component hard-codes videoStreamUrl to http://{deviceIp}:8080 (the default web_video_server port) and never tears it down.
- live preview is just an
whose src is ${videoStreamUrl}/stream?topic=/image. Unmounting the React component simply removes the
, but the HTTP connection remains open on the server side until the browser closes the socket; there's no call back into ROS to close the session.
- There's no useEffect cleanup toggling livePreview back to false or hitting /shutdown on web_video_server, so once the preview is turned on the MJPEG stream stays active even after leaving the page. That's why we keep seeing the timed-out port sessions: the server never receives a cancel/stop request.
lsof -iTCP:8080 -sTCP:ESTABLISHED -P -n
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
web_video 230596 varun.verlencar 47u IPv4 5249642 0t0 TCP 127.0.0.1:8080->127.0.0.1:39890 (ESTABLISHED)
Metadata
Metadata
Assignees
Labels
No labels