将流数据收集到角度应用程序中

时间:2018-10-26 14:54:37

标签: angular streaming

假设我有一个Flask后端流式传输数据,如下所示:

from flask import Flask, Response, jsonify
from flask_cors import CORS
import json

from itertools import cycle
from time import sleep


app = Flask(__name__)
CORS( app)

@app.route('/')
def hello_world():
    def gen():
        for i in cycle(range(1,10)):
            yield json.dumps( {"new_val":i})
            sleep(1)
    return Response( gen())


app.run( port=5000, debug=True)

如何在Angular 5-6-7应用中以Observable之类的方式收集这些数据?我曾尝试与httpClientModule一起玩并进行了一些研究,但没有找到任何有效的示例。

2 个答案:

答案 0 :(得分:2)

我建议您为此使用socket.io客户端api https://www.npmjs.com/package/socket.io-client

角度为2+的该库的教程 http://www.syntaxsuccess.com/viewarticle/socket.io-with-rxjs-in-angular-2.0

并检查如何在Flask后端上实现它

答案 1 :(得分:1)

HttpClientModule并不是您所需要的。最好使用RxJs的Websocket库。假设您知道如何设置后端以接受Websocket,该库将使此操作变得更加容易。如果您担心网络上的数据量,也可以利用协议标头,尤其是Google的“ protobuf”库。可以在这里找到:https://developers.google.com/protocol-buffers/