Use SSE frontend #3

This commit is contained in:
Ian Renton
2025-12-22 15:47:45 +00:00
parent fd2986f310
commit 70a7bd4814
9 changed files with 97 additions and 44 deletions

View File

@@ -110,34 +110,40 @@ class WebServer:
# Serve the SSE JSON API /spots/stream endpoint
def serve_sse_spots_api(self):
response.content_type = 'text/event-stream'
response.cache_control = 'no-cache'
yield 'retry: 1000\n\n'
try:
response.content_type = 'text/event-stream'
response.cache_control = 'no-cache'
yield 'retry: 1000\n\n'
spot_queue = Queue(maxsize=100)
self.sse_spot_queues.append(spot_queue)
while True:
if spot_queue.empty():
gevent.sleep(1)
else:
spot = spot_queue.get()
yield 'data: ' + json.dumps(spot, default=serialize_everything) + '\n\n'
spot_queue = Queue(maxsize=100)
self.sse_spot_queues.append(spot_queue)
while True:
if spot_queue.empty():
gevent.sleep(1)
else:
spot = spot_queue.get()
yield 'data: ' + json.dumps(spot, default=serialize_everything) + '\n\n'
except Exception as e:
logging.warn("Exception when serving SSE socket", e)
# Serve the SSE JSON API /alerts/stream endpoint
def serve_sse_alerts_api(self):
response.content_type = 'text/event-stream'
response.cache_control = 'no-cache'
yield 'retry: 1000\n\n'
try:
response.content_type = 'text/event-stream'
response.cache_control = 'no-cache'
yield 'retry: 1000\n\n'
alert_queue = Queue(maxsize=100)
self.sse_alert_queues.append(alert_queue)
while True:
if alert_queue.empty():
gevent.sleep(1)
else:
alert = alert_queue.get()
yield 'data: ' + json.dumps(alert, default=serialize_everything) + '\n\n'
alert_queue = Queue(maxsize=100)
self.sse_alert_queues.append(alert_queue)
while True:
if alert_queue.empty():
gevent.sleep(1)
else:
alert = alert_queue.get()
yield 'data: ' + json.dumps(alert, default=serialize_everything) + '\n\n'
except Exception as e:
logging.warn("Exception when serving SSE socket", e)
# Look up data for a callsign
def serve_call_lookup_api(self):