gpt4 book ai didi

flask - 未调用 eventsource.onmessage - Flask 应用程序

转载 作者:行者123 更新时间:2023-12-04 11:00:05 25 4
gpt4 key购买 nike

我一直在开发一个 flask 应用程序,并试图实现 SSE。在下面检查我的代码:

索引.py

@app.route('/stream', methods=['GET'])
@cross_origin()
def stream():
def listenstream():
print("listening")
displaytext = { 'requestdata': 'Sampledata', 'responsedata' : 'Sample Data'}
displaytext=json.dumps(displaytext)
yield 'event: message\n'
yield 'data : '+displaytext+'\n\n'
time.sleep(1.5)

return Response(response=listenstream(),status=200,mimetype="text/plain",content_type='text/event-stream')

自定义.js
var eventSource = new EventSource("/stream");

eventSource.onmessage = function (e) {
console.log("Onmessage"+e)
}


eventSource.onerror = function (e) {
console.log("Onerror"+JSON.stringify(e))
}

eventSource.onopen = function (e) {
console.log("Onopen"+JSON.stringify(e))
}

这里 eventSource.onerror => {"isTrusted":true} ,eventSource.onopen => {"isTrusted":true} 但 eventSource.onmessage 没有被调用。我在 js 文件中尝试了 addEventListener:
var eventSource = new EventSource("/stream");
eventSource.addEventListener('message', (e) => {

console.log("Received update")
})

如果我呈现链接' http://localhost:5000/stream ', 它给 :

event: message

data : {"requestdata": "Sampledata", "responsedata": "Sampledata"}



但我需要 数据在链接上' http://localhost:5000 '。这是正确的做法吗?

帮助将不胜感激:)

最佳答案

以下更新为我解决了这个问题:

索引.py

     yield "event: {0}\ndata: {1}\n\n".format("listen",displaytext)
return Response(listenstream(), mimetype="text/event-stream")
自定义.js
var eventSource = new EventSource("/stream");
eventSource.addEventListener('listen', function(e){

//Code here
},false);

关于flask - 未调用 eventsource.onmessage - Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58871449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com