EventSource响应时间长且接收多个数据

时间:2018-07-31 14:55:47

标签: javascript reactjs server-sent-events eventsource

目前,我在React上实现EventSource(用于监听服务器发送事件的客户端)。下面是我的代码示例。

import React from "react";
let es = {};


class Layout extends React.Component {

  componentDidMount() {
    let $$ = this;
    es = new EventSource(`${urlConfig.SSE_HOST}subscribe`);
    es.addEventListener("rule-event", function (e) {
      const data = JSON.parse(e.data);
      console.log("DATA Event  => ", data);
      $$.props.addRuleEvent(data.name, data.value);

      const rule = data.name.split(':');
      const ruleName = rule[0];
      const ruleType = rule[1];

      $$.props.addLatestEvent(`${ruleName}:${ruleType}`, data.value);
    });

   componentWillUnmount() {
     es.close();
   }
}

从SSE接收数据后,我将数据推送到redux并稍后使用。但是现在我遇到了一个新问题,经过大约半小时/一个小时的长时间后,出现了问题(我一直打开浏览器选项卡CHROME)。问题在于数据将被多次接收,有时甚至是3或4个数据。即使我的SSE仅发送一个数据。

第二个问题,有时我的客户端(EventSource)需要很长时间才能收听SSE

有人以前遇到过此错误吗?还是我的代码有问题?

0 个答案:

没有答案