社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  tornado

WebSockets的python tornado提取处理程序

user3732793 • 5 年前 • 1412 次点击  

这个python 3代码按原样工作。

import tornado.web
import tornado.websocket
import tornado.httpserver
import tornado.ioloop

class WebSocketHandler(tornado.websocket.WebSocketHandler):
    connections = set()

    def open(self):
            self.connections.add(self)
            print ('new connection was opened')
            pass

    def on_message(self, message):
            print ('from WebSocket: ', message)
            messageTooSockets.put(message)

    def on_close(self):
            self.connections.remove(self)
            print ('connection closed')
            pass

class IndexPageHandler(tornado.web.RequestHandler):
    def get(self):
    self.render("index.html")

class webApplication(tornado.web.Application):
    def __init__(self):
    handlers = [
        (r'/', IndexPageHandler),
        (r'/websocket', WebSocketHandler),
        (r'/(.*)', tornado.web.StaticFileHandler, {'path': './root'})
    ]

    settings = {
        'template_path': 'templates'
    }
    tornado.web.Application.__init__(self, handlers, **settings)

if __name__ == '__main__':
    ws_app = webApplication()
    server = tornado.httpserver.HTTPServer(ws_app)
    server.listen(9090)
    tornado.ioloop.IOLoop.instance().start()

提取处理程序对于请求或静态文件处理程序来说不是问题。但是,当将WebSockets处理程序提取到子文件夹Tornado中的包时,会抱怨。

ERROR:tornado.application:Uncaught exception
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/tornado/http1connection.py", 
line 238, in _read_message
    delegate.finish()
  File "/usr/lib/python3/dist-packages/tornado/routing.py", line 251, 
in finish
    self.delegate.finish()
  File "/usr/lib/python3/dist-packages/tornado/web.py", line 2097, in 
finish
    self.execute()
  File "/usr/lib/python3/dist-packages/tornado/web.py", line 2117, in 
execute
    **self.handler_kwargs)
TypeError: __init__() takes 1 positional argument but 3 were given

导入tornado.websocket.websocket handler处理程序时,是否有关于tornado套接字的特殊性?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34224
 
1412 次点击  
文章 [ 1 ]  |  最新文章 5 年前
user3732793
Reply   •   1 楼
user3732793    5 年前

messagetoosockets格式错误…愚蠢的想法