मैं उदाहरण कोड के साथ Flask-Sockets उपयोग करने के लिए कोशिश कर रहा हूँ:फ्लास्क-सॉकेट का उपयोग कैसे करें? 'Wsgi.websocket'
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
दुर्भाग्य से, जब बस यूआरएल के लिए जा रहा/मेरी ब्राउज़र का उपयोग कर गूंज यह मुझे एक त्रुटि कह देता है एक KeyError हो रही है:
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/flask_sockets.py", line 37, in __call__
environment = environ['wsgi.websocket']
KeyError: 'wsgi.websocket'
कोई भी विचार क्या मैं गलत कर रहा हूं? सभी सुझावों का स्वागत है!
[संपादित करें] @jbub - युक्तियों के लिए धन्यवाद! तो शुरू करने के लिए अब मैं अंतर्निहित देव-सर्वर के बजाय बंदूक का उपयोग करता हूं। तो मैंने इसे gunicorn -k flask_sockets.worker -b 0.0.0.0:5000 main:app
का उपयोग शुरू किया। मैंने फिर नीचे दिए गए कोड को मेरे विचारों में डाला। मैं ncho_test.html आपके द्वारा प्रदान किया गया कोड है। जब मैं अब/echo_test पर जाता हूं, तो मुझे वास्तव में "सॉकेट बंद" कहने का संकेत मिलता है।
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
@app.route('/echo_test', methods=['GET'])
def echo_test():
return render_template('echo_test.html')
लेकिन मान लीजिए कि मेरी उद्देश्य एक पृष्ठ अन्य मूल्यों बेतरतीब ढंग से सूची से चुने गये साथ अद्यतन किया जाता है जिस पर एक शब्द (बेतरतीब ढंग से एक सूची से चुने गये) के लिए कर रही है। क्या आपके पास इसे प्राप्त करने के बारे में कोई सुझाव होगा?
क्या आप किसी भी http सर्वर के पीछे चल रहे हैं? क्या आपके पास libevent, gevent और gevent-websocket स्थापित है? – jbub
@jbub - मैं अपाचे और फ्लास्क देव-सर्वर दोनों चला रहा हूं। लेकिन जहां तक मुझे पता है, वे एक-दूसरे के रास्ते में नहीं आते हैं। फ्लास्क सर्वर से चलने वाली सभी अन्य चीजों में कोई समस्या नहीं है। इसके अलावा, मैंने अभी इस सवाल में जोड़ा है कि मैं बस अपने ब्राउज़र के साथ यूआरएल का दौरा कर रहा हूं, मुझे लगता है कि सही शुरू करने का तरीका है? किसी अन्य सुझाव का स्वागत है क्योंकि मैं बहुत हताश हूं .. – kramer65
इस समस्या में चल रहे अन्य लोगों के लिए ध्यान दें। सुनिश्चित करें कि आपका पोर्ट सही है। ज्यादातर मामलों में बंदरगाह 8000 नहीं 5000 होना चाहिए। –