Removed redundant code level constatnt with repo based runtime_urls.py Added run-master, run-worker.sh scripts for convinient clean, builds
48 lines
1.4 KiB
Python
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()
|