首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tornado websockets ioloop异常

tornado websockets ioloop异常
EN

Stack Overflow用户
提问于 2011-11-24 03:43:34
回答 1查看 1.2K关注 0票数 1

我正在尝试让tornado websockets文档中的hello-world示例正常工作。我是tornado的新手,也是websockets的新手。我直接从文档中指定了以下处理程序:

代码语言:javascript
复制
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"

并从javascript调用它,使用

代码语言:javascript
复制
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。有没有什么明显的地方我做错了?我使用的是tornado 1.2.1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-25 02:47:33

这可能与您正在使用的旧版本的Python (日志中的2.5)有关。object.__init__object.__new__的行为在几年前发生了变化:http://svn.python.org/view?revision=54539&view=revision

此外,我认为你的问题中有一个打字错误:你指的是"tornado 2.1.1“而不是"tornado 1.2.1",对吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8248142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档