Поток ответов Flask спам-сообщений журнала - PullRequest
2 голосов
/ 22 сентября 2019

Я отправляю SSE с сервера Python Flask, используя flask.Response, в EventSource экземпляры в интерфейсе React.js.Это работает просто отлично, но сервер Python Flask генерирует большое количество сообщений журнала в форме ...GET /stream HTTP/1.1....Мне интересно, почему он рассылает сообщения журнала и как мне этого не делать?

Flask server:

#!/usr/bin/env python3


import flask
from flask_cors import CORS
import random

app = flask.Flask(__name__)
app.secret_key = 'asdf'
CORS(app)

def stream_internal():
    if random.random() < 0.1:
        print("sending data")
        yield 'data: %s\n\n' % b'test'

@app.route('/stream')
def stream():
    return flask.Response(stream_internal(), mimetype="text/event-stream")


if __name__ == '__main__':
    app.debug = True
    app.run()

Логика подписки React.js (registerCallback вызывается по поводу8 раз во внешнем интерфейсе):

let callbacks = []

function registerCallback(callback) {
    var eventSource = new EventSource("http://localhost:5000/stream")
    callbacks.push(callback)
    eventSource.onmessage = e => {
        var i;
        for(i = 0; i < callbacks.length; ++i) {
            // this works just fine.
            callbacks[i]( ........ )
        }
    };
}

Сообщения журнала колб:

127.0.0.1 - - [22/Sep/2019 23:14:50] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:50] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
sending data
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
sending data
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:53] "GET /stream HTTP/1.1" 200 -
127.0.0.1 - - [22/Sep/2019 23:14:56] "GET /stream HTTP/1.1" 200 -
...