Newer
Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Web client"""
# System modules
# Third-party modules
from flask_socketio import SocketIO
# Custom modules
Davide Ricci
committed
app.template_folder = "./web/pages"
app.static_folder = "./web/static"
app.register_blueprint(routes.web, url_prefix='/web')
base_url = {"ext_base_url": "http://fork.orsa.unige.net:5533",
"int_base_url": "http://10.185.119.108:5533"}
socketio = SocketIO(app,
path="/web/socket",
async_mode='threading',
Davide Ricci
committed
threaded=True)
Davide Ricci
committed
ws_names = [
base_url["int_base_url"]+"/all/dome",
base_url["int_base_url"]+"/all/telescope",
base_url["int_base_url"]+"/all/camera?wait=0.2",
base_url["int_base_url"]+"/api/sequencer/run",
base_url["int_base_url"]+"/api/webcam/snapshot",
base_url["int_base_url"]+"new_lines",
Davide Ricci
committed
]
@socketio.on('connect')
def handle_connect():
Davide Ricci
committed
Davide Ricci
committed
# First connection
client_id = request.sid
client_ip = request.remote_addr
connected_clients[client_id] = client_ip
uniques = len(set(connected_clients.values()))
print(f"Connected: {client_id} - IP: {client_ip}. Tabs: {len(connected_clients)}, IPs: {uniques}")
@socketio.on('disconnect')
def handle_disconnect():
client_id = request.sid
client_ip = request.remote_addr
if client_id in connected_clients:
del connected_clients[client_id]
uniques = len(set(connected_clients.values()))
print(f"Disconnected: {client_id} - IP: {client_ip}. Tabs: {len(connected_clients)}, IPs: {uniques}")
@socketio.on_error()
# socketio.start_background_task(send_binary, socketio=socketio)
# socketio.start_background_task(stream.send_timestamp, socketio=socketio)
socketio.start_background_task(stream.send_status, socketio=socketio,
url=base_url["int_base_url"]+"/all/dome")
socketio.start_background_task(stream.send_status, socketio=socketio,
url=base_url["int_base_url"]+"/all/telescope")
socketio.start_background_task(stream.send_status, socketio=socketio,
url=base_url["int_base_url"]+"/all/camera?wait=0.2")
socketio.start_background_task(stream.send_status, socketio=socketio,
url=base_url["int_base_url"]+"/api/sequencer/run")
socketio.start_background_task(stream.send_webcam, socketio=socketio,
url=base_url["int_base_url"]+"/api/webcam/snapshot")
# socketio.start_background_task(stream.send_status, socketio=socketio,
# url=base_url["int_base_url"]+"/api/environment/status", sleep=40)
socketio.start_background_task(stream.tail_f, socketio=socketio)