नीचे दिए गए उत्तर node.js. का उपयोग कर दिया गया हैमैं फ्लास्क में सर्वर-भेजें ईवेंट कनेक्शन कैसे बंद करूं?
How to close a "Server-Sent Events"-connection on the server?
हालांकि, कैसे अजगर फ्लास्क में एक ही बात करना है?
नीचे दिए गए उत्तर node.js. का उपयोग कर दिया गया हैमैं फ्लास्क में सर्वर-भेजें ईवेंट कनेक्शन कैसे बंद करूं?
How to close a "Server-Sent Events"-connection on the server?
हालांकि, कैसे अजगर फ्लास्क में एक ही बात करना है?
अच्छा, यह आपके ऐप के आर्किटेक्चर पर निर्भर करता है।
मैं आपको एक उदाहरण (https://github.com/jkbr/chat/blob/master/app.py में इस कोड को देखें) दिखाने दें:
def event_stream():
pubsub = red.pubsub()
pubsub.subscribe('chat')
for message in pubsub.listen():
print message
yield 'data: %s\n\n' % message['data']
@app.route('/stream')
def stream():
return flask.Response(event_stream(),
mimetype="text/event-stream")
बोतल Redis (ताला लगा आपरेशन) के लिए एक नया संदेश पूछता है तेजी से, लेकिन जब बोतल देखता है कि स्ट्रीमिंग समाप्त (StopIteration
, अगर आप पाइथन के लिए नए नहीं हैं), यह लौटता है।
def event_stream():
pubsub = red.pubsub()
pubsub.subscribe('chat')
for message in pubsub.listen():
if i_should_close_the_connection:
break
yield 'data: %s\n\n' % message['data']
@app.route('/stream')
def stream():
return flask.Response(event_stream(),
mimetype="text/event-stream")
ऐसा लगता है कि फ्लास्क के लेखक के पास अभी तक इसका समर्थन करने की कोई योजना नहीं है। "सर्वर-प्रेषित घटनाओं" के लिए, किसी ईवेंट-संचालित आर्किटेक्चर जैसे NodeJS का उपयोग करना बेहतर है। – hllau
[यह टिप्पणी] (http://stackoverflow.com/questions/32273937/how-to-redirect-when-server-sent-event-is-finished-in-flask-on-server-side#comment52434617_32275299) भी था एक समान प्रश्न के लिए बहुत उपयोगी – colidyre