Stream real-time position quotes via tick-driven SSE with incremental UI updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+9
-2
@@ -50,8 +50,7 @@ class PositionStreamHub:
|
||||
self._snapshot = dict(data)
|
||||
self._snapshot_ts = time.time()
|
||||
|
||||
def broadcast(self, event: str, data: dict) -> None:
|
||||
self.set_snapshot(data)
|
||||
def _fanout(self, event: str, data: dict) -> None:
|
||||
msg = {"event": event, "data": data}
|
||||
with self._lock:
|
||||
subs = list(self._subs)
|
||||
@@ -68,6 +67,14 @@ class PositionStreamHub:
|
||||
except queue.Full:
|
||||
pass
|
||||
|
||||
def broadcast(self, event: str, data: dict) -> None:
|
||||
self.set_snapshot(data)
|
||||
self._fanout(event, data)
|
||||
|
||||
def push_event(self, event: str, data: dict) -> None:
|
||||
"""SSE 推送,不覆盖 positions 全量快照。"""
|
||||
self._fanout(event, data)
|
||||
|
||||
|
||||
position_hub = PositionStreamHub()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user