2011-11-23 75 views
1

我試圖從龍捲風websockets文檔工作得到你好,世界的例子。我對龍捲風很陌生,對websockets完全陌生。我指定了以下處理程序,直接從文檔:龍捲風websockets ioloop異常

class EchoWebSocket(tornado.websocket.WebSocketHandler): 
    def open(self): 
     print "WebSocket opened" 

    def on_message(self, message): 
     self.write_message(u"You said: " + message) 

    def on_close(self): 
     print "WebSocket closed" 

,並使用

var ws = new WebSocket("ws://localhost:6665/websocket"); 
ws.onopen = function() { 
    ws.send("Hello, world"); 
}; 
ws.onmessage = function (evt) { 
    alert(evt.data); 
}; 

也直接從文檔從JavaScript調用它。我立即打了三個例外:

[E 111123 17:45:54 iostream:233] Uncaught exception, closing connection. 
    Traceback (most recent call last): 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 230, in _run_callback 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/stack_context.py", line 173, in wrapped 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/httpserver.py", line 353, in _on_headers 
     self.request_callback(self._request) 
     File "/local/lib/python2.5/site-packages/tornado/web.py", line 1182, in __call__ 
     handler = spec.handler_class(self, request, **spec.kwargs) 
    TypeError: default __new__ takes no parameters 
[E 111123 17:45:54 iostream:221] Uncaught exception, closing connection. 
    Traceback (most recent call last): 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 199, in _handle_events 
     self._handle_read() 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 258, in _handle_read 
     if self._read_from_buffer(): 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 325, in _read_from_buffer 
     self._consume(loc + delimiter_len)) 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 230, in _run_callback 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/stack_context.py", line 173, in wrapped 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/httpserver.py", line 353, in _on_headers 
     self.request_callback(self._request) 
     File "/local/lib/python2.5/site-packages/tornado/web.py", line 1182, in __call__ 
     handler = spec.handler_class(self, request, **spec.kwargs) 
    TypeError: default __new__ takes no parameters 
[E 111123 17:45:54 ioloop:281] Exception in I/O handler for fd 4 
    Traceback (most recent call last): 
     File "/local/lib/python2.5/site-packages/tornado/ioloop.py", line 269, in start 
     self._handlers[fd](fd, events) 
     File "/local/lib/python2.5/site-packages/tornado/stack_context.py", line 173, in wrapped 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 199, in _handle_events 
     self._handle_read() 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 258, in _handle_read 
     if self._read_from_buffer(): 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 325, in _read_from_buffer 
       self._consume(loc + delimiter_len)) 
     File "/local/lib/python2.5/site-packages/tornado/iostream.py", line 230, in _run_callback 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/stack_context.py", line 173, in wrapped 
     callback(*args, **kwargs) 
     File "/local/lib/python2.5/site-packages/tornado/httpserver.py", line 353, in _on_headers 
     self.request_callback(self._request) 
     File "/local/lib/python2.5/site-packages/tornado/web.py", line 1182, in __call__ 
     handler = spec.handler_class(self, request, **spec.kwargs) 
    TypeError: default __new__ takes no parameters 

我承認,無法正確解析,我很緊張,陷入tornado.web。有什麼明顯的我做錯了嗎?我正在使用龍捲風1.2.1。

回答

0

它可能與您使用的Python的舊版本(來自日誌2.5)有關。 的object.__init__object.__new__行爲改變了幾年前:http://svn.python.org/view?revision=54539&view=revision

而且,我相信這是你的問題一個錯字:你的意思是「龍捲風2.1.1」而不是「龍捲風1.2.1」,對不對?

+0

=)哦,使用遺留系統的喜悅。我認爲你是對的,因爲我正在嘗試使用舊版本的Python以及我試圖使用的舊版龍捲風。我曾希望我能夠閉上眼睛,並且都會把自己排除在外。感謝您的現實檢查! –