假设我有一个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
一起玩并进行了一些研究,但没有找到任何有效的示例。
答案 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/