Javascript EventSource застревает в состоянии ожидания - PullRequest
0 голосов
/ 08 февраля 2020

Я использую события, отправленные сервером, и API-интерфейс Javascript EventSource для живой панели инструментов React, и у меня есть несколько вкладок, каждая из которых использует один EventSource. Когда я перемещаюсь между разными вкладками, поток событий застревает в ожидании, как последний «живой» поток на снимке экрана ниже: enter image description here

Из-за этого данные не загружаются в Отреагировали на приборную панель и застряли на загрузке. Я вижу, что потоки, которые открываются ранее, несмотря на то, что я их закрываю:

  const [data, setData] = useState(undefined);

  const reportDataEventSource = new EventSource(
    "http://localhost:8080/report/heatMap/live"
  );

  useEffect(() => {
    reportDataEventSource.onmessage = e => {
      setData(JSON.parse(e.data));
    };

    return () => reportDataEventSource.close()
  }, []);

В чем может быть причина этого и как я могу это исправить?

...