2014-01-23 3 views
-1

다음 코드를 사용하여 wsgi 서버를 생성했습니다. 그러나 클라이언트가 연결할 때 일부 오류가 발생하고 연결이 실패합니다.클라이언트 연결시 Python gevent-socketio 서버 오류가 발생했습니다.

코드 :

#! /usr/bin/env python 

import gevent.monkey 
gevent.monkey.patch_all() 

from socketio.server import SocketIOServer 

class Application(object): 
    def __init__(self): 
     print "Hiii" 

    def __call__(self, environ, start_response): 
     print "Hello" 

def main(): 
    server = SocketIOServer(('127.0.0.1',1234), Application(), namespace = "", policy_server=False) 
    server.serve_forever() 

if __name__ == '__main__': 
    main() 

오류 :

Traceback (most recent call last): 
    File "/usr/lib/pymodules/python2.7/gevent/pywsgi.py", line 449, in handle_one_response 
    self.run_application() 
    File "/usr/lib/pymodules/python2.7/gevent/pywsgi.py", line 436, in run_application 
    self.process_result() 
    File "/usr/lib/pymodules/python2.7/gevent/pywsgi.py", line 425, in process_result 
    for data in self.result: 
TypeError: 'NoneType' object is not iterable 
+0

나는'socketio' 모듈에 익숙하지 해요,하지만 당신의 기능을'print' 데이터를 해야하는 가능성이다. [예제] (https://github.com/abourget/gevent-socketio/tree/master/examples)를 살펴보고 거기에서 작업 할 것입니다. – larsks

답변

0

귀하의 __call__() WSGI 호환 결과를 반환해야합니다.

당신은 코드 샘플 다음 찾을 수 http://www.python.org/dev/peps/pep-0333/ 를 참조하십시오

def simple_app(environ, start_response): 
    """Simplest possible application object""" 
    status = '200 OK' 
    response_headers = [('Content-type', 'text/plain')] 
    start_response(status, response_headers) 
    return ['Hello world!\n'] 
관련 문제