【问题标题】:IOError handling on Sockjs-TornadoSockjs-Tornado 上的 IOError 处理
【发布时间】:2012-11-28 03:59:00
【问题描述】:

我基于 sockjs-tornado 聊天示例开发了即时通讯应用程序。我的代码是异步的。

有这个堆栈跟踪:

ERROR:root:Exception in callback <tornado.stack_context._StackContextWrapper object at 0x80932c788>
Traceback (most recent call last):

File "/usr/local/lib/python2.7/site-packages/tornado/ioloop.py", line 421, in _run_callback
    callback()

File "/usr/local/lib/python2.7/site-packages/tornado/iostream.py", line 305, in wrapper
    callback(*args)

File "/usr/local/lib/python2.7/site-packages/sockjs/tornado/websocket.py", line 661, in _on_frame_data
    self._receive_frame()

File "/usr/local/lib/python2.7/site-packages/sockjs/tornado/websocket.py", line 580, in _receive_frame
    self.stream.read_bytes(2, self._on_frame_start)

File "/usr/local/lib/python2.7/site-packages/tornado/iostream.py", line 166, in read_bytes
    self._try_inline_read()

File "/usr/local/lib/python2.7/site-packages/tornado/iostream.py", line 382, in _try_inline_read
    self._check_closed()

File "/usr/local/lib/python2.7/site-packages/tornado/iostream.py", line 565, in _check_closed
    raise IOError("Stream is closed")
IOError: Stream is closed

如果我必须从聊天参与者列表中删除对已关闭连接的引用,如何处理此异常?

谢谢

【问题讨论】:

  • [你可以在这里看到类似的情况][1] [1]:stackoverflow.com/questions/11161626/…
  • @stirbu: 格式为[you can see here similar situation](http://stackoverflow.com/questions/11161626/tornado-server-throws-error-stream-is-closed)

标签: python tornado sockjs


【解决方案1】:

当用户断开 websocket 连接而没有正确关闭它时会发生此异常(网络错误等)。

在任何一种情况下,都会调用您的 on_close 处理程序,以便您可以从聊天参与者列表中删除用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多