Files
3cloud-backend/streamlit_server/views/websocket.py
T
JamesBhattarai 38ddcb5d4d Chore: appropos removed constants
Removed redundant code level constatnt with repo based runtime_urls.py
Added run-master, run-worker.sh scripts for convinient clean, builds
2026-05-23 19:20:18 +05:45

48 lines
1.4 KiB
Python

import streamlit as st
import requests
import socketio
from runtime_urls import WEBSOCKET_SERVER_URL
API_URL = f"{WEBSOCKET_SERVER_URL}/api/connected_clients"
def load_clients():
response = requests.get(API_URL)
if response.status_code == 200:
return response.json().get("connected_clients", [])
return []
def render():
# Initialize SocketIO client
sio = socketio.Client()
sio.connect(WEBSOCKET_SERVER_URL)
st.title("Connected Clients")
clients = load_clients()
if clients:
selected_client = st.selectbox("Select a Worker ID", [client["worker_id"] for client in clients])
st.write("## Connected Clients")
st.table([
{
"Worker ID": c["worker_id"],
"Socket ID": c["socket_id"],
"IP Address": c["ip"]
} for c in clients
])
if selected_client:
st.write("## Send Message")
message = st.text_area("Enter your message:")
if st.button("Send Message"):
if message.strip():
message_result=sio.emit("send_message", {"worker_id": selected_client, "message": message})
st.success(f"Message sent to {selected_client} {message_result}")
else:
st.error("Message cannot be empty!")
else:
st.warning("No connected clients found.")
render()