2013-07-13 8 views
8

के माध्यम से मिलकर एक साथ (वेबस्कॉकेट्स और नियमित डब्लूएसजीआई विचारों को एक (फ्लास्क) ऐप में एक साथ संभालने के लिए गनिकोर्न का उपयोग करना संभव है?वेबसाकेट्स और डब्लूएसजीआई गनिकॉर्न

मुझे पता है कि गेवेंट डब्लूएसजीआई सर्वर का उपयोग करके वेबसाइकिलों को काम करने के लिए कैसे प्राप्त किया जाए, और मैं नियमित रूप से डब्लूएसजीआई ऐप ग्रीनकॉर्न के साथ ग्रीनिकॉर्न के साथ चल रहा हूं, लेकिन जब मैं गनिकॉर्न I का उपयोग करके एक ऐप से दोनों की सेवा करने की कोशिश करता हूं एक त्रुटि:

ValueError: View function did not return a response

क्या बंदूक के उपयोग से एक ऐप से दोनों की सेवा करना संभव है? मैं आखिरकार यह सब nginx के पीछे रखने की योजना बना रहा हूं, और मैं सॉकेट को किसी अन्य ऐप में विभाजित करने और दो संवाद करने के विपरीत नहीं हूं, जब तक कि यह बहुत से अतिरिक्त सिस्टम संसाधनों की मांग नहीं करता है। तब तक, इस तरह से ऐसा करने का कोई तरीका है?

संपादित करें:

मैं पता लगा कि कैसे इस काम कर पाने के लिए। कुंजी 1) गीवेंट के लिए लॉगिंग फ़ंक्शन को बदलें और 2) ग्रीनिकॉर्न को निर्दिष्ट करना सुनिश्चित करें कि मैं geventWebSocketWorker क्लास श्रमिकों का उपयोग कर रहा हूं।

मैं इस साइट पर इस उत्तर का हिस्सा मिला: http://d.hatena.ne.jp/Malan/20121007

रिकॉर्ड के लिए, मुझे लगता है कि यह शायद एक बेहतर विचार है मेरी WSGI सामान चल रहा एक सर्वर चल रहा बवंडर/मुड़/ऑटोबान (धन्यवाद जॉर्डन) और एक अन्य के लिए । लेकिन यह वही नहीं है जो मैं चाहता था :)

def log_request(self): 
    log = self.server.log 
    if log: 
     if hasattr(log, "info"): 
      log.info(self.format_request() + '\n') 
     else: 
      log.write(self.format_request() + '\n') 

import gevent   
gevent.pywsgi.WSGIHandler.log_request = log_request 
from geventwebsocket.handler import WebSocketHandler 
from gevent.pywsgi import WSGIServer 

sudo gunicorn -c gunicorn_config.py -k  "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" router:app  
+1

क्या यह आप जो कर रहे हैं उसके लिए संबंधित है? http://stackoverflow.com/questions/13137449/combining-websockets-and-wsgi-in-a-python-app – Jordan

+0

बिल्कुल, लेकिन यदि संभव हो तो मैं इस परियोजना के साथ मुड़ या टर्ननाडो का उपयोग करना टालना चाहता हूं। –

+0

आपको uwsgi के पक्ष में बंदूकधारी को कुचलना चाहिए। – user37203

उत्तर

2

Flask-Sockets सहायक हो सकता है।

+0

उस पुस्तकालय के बड़े प्रशंसक –

संबंधित मुद्दे