2014-01-23 95 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']