mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-02-04 09:14:30 +00:00
Use SSE frontend #3
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user