我有以下基本的 Tornado 应用程序:
import tornado.web
class IndexHandler(tornado.web.RequestHandler):
"""Regular HTTP handler to serve the ping page"""
def get(self):
self.write("OK")
if __name__ == "__main__":
app = tornado.web.Application([
(r"/", IndexHandler),
])
app.listen(8000)
print 'Listening on 0.0.0.0:8000'
tornado.ioloop.IOLoop.instance().start()
这将在“http://localhost:8000”
上运行。我如何让它运行并接受 ws://localhost:8000
处的连接?
最佳答案
tornado.web.RequestHandler
用于接受 HTTP 请求。对于websocket,您需要使用tornado.websocket.WebSocketHandler
.
另一件事需要注意的是,您不能直接从浏览器访问 websocket url。也就是说,您无法在地址栏中输入 ws://localhost:8000
并期望连接到 websocket。这不是 websocket 的工作方式。
Websocket 连接是升级连接。这意味着,您首先必须通过 HTTP 访问 url,然后使用 Javascript 升级到 websocket。
查看有关如何使用 Javascript 连接到 websocket 的示例,地址:Mozilla Web Docs .
关于python - 如何允许 ws ://instead of localhost://for tornado,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52574849/