在Tornado中,可以通过使用WebSocketHandler
和RequestHandler
来在同一个URL上提供HTTP页面和WebSocket服务。
首先,需要导入Tornado库和相关模块:
import tornado.web
import tornado.websocket
import tornado.ioloop
然后,创建一个继承自RequestHandler
的类,用于处理HTTP请求和提供HTTP页面:
class HTTPHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html") # 渲染index.html页面
接下来,创建一个继承自WebSocketHandler
的类,用于处理WebSocket连接和消息:
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
print("WebSocket连接已建立")
def on_message(self, message):
print("收到消息:", message)
def on_close(self):
print("WebSocket连接已关闭")
然后,创建一个Tornado应用,并将HTTP和WebSocket的URL映射到对应的处理类:
app = tornado.web.Application([
(r"/", HTTPHandler), # 映射根URL到HTTPHandler
(r"/websocket", WebSocketHandler), # 映射/websocket URL到WebSocketHandler
])
最后,启动Tornado应用的事件循环:
if __name__ == "__main__":
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
现在,当访问根URL时,将会返回index.html
页面;当通过/websocket
URL建立WebSocket连接时,将会触发WebSocketHandler中的相应事件。
关于Tornado的更多信息和使用方法,可以参考腾讯云的Tornado产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云