【问题标题】:Stream from Winston log file directly in React App直接在 React App 中从 Winston 日志文件流式传输
【发布时间】:2017-09-19 06:05:25
【问题描述】:

在我的 Node 后端,我创建了一个 winston JSON 日志文件(更像是一个 Json 对象数组)。我有一个反应前端,我想在其中实时流式传输日志文件内容。如果不通过我的后端管道,这可能吗?

【问题讨论】:

  • 您是否希望其他没有该文件的人看到它?
  • 是的,你是对的,如果不通过后端管道,这是不可能的。

标签: javascript node.js file reactjs winston


【解决方案1】:

是的,您可以这样做,但这确实会降低 Web 服务器的性能。只有一种方法可以在不通过后端管道的情况下做到这一点,您可以通过在特定时间间隔向 Web 服务器发送 HEAD 请求来做到这一点。

原版 JavaScript 代码:

var xhr = new XMLHttpRequest();
var intervalMs = 500;
var lastTime = new Date().getTime();
var intervalObj = window.setInterval(function(){
    xhr.open('HEAD', 'http://localhost:80/logfile.log');
    xhr.onreadystatechange = function() {
        if(this.readyState = this.DONE)
        {
            let lastModifiedStr = this.getResponseHeader('Last-Modified');
            var lastModifiedTimeStamp = new Date(lastModifiedStr).getTime();
            console.log("Last Modified",lastModifiedTimeStamp)
            if(lastTime < lastModifiedTimeStamp)
            {
                lastTime = lastModifiedTimeStamp;
                // Update your Redux State here and catch it with React and Update your UI
            }
        }
    };
    xhr.send()
}, intervalMs);

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2020-01-20
    • 2015-05-06
    • 2019-11-19
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多