Python 3; Websockets服务器和HTTP服务器-run_forever和serve_forever

时间:2018-12-09 05:12:32

标签: python http websocket server

我正在尝试在同一python应用程序中运行websockets服务器和http服务器。看来我正在尝试运行两个永久循环,而第二个循环未激活。关于如何使这两个服务器都运行的任何建议?

httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)

httpd.serve_forever()
asyncio.get_event_loop().run_until_complete(
    websockets.serve(echo, 'localhost', 8001))
asyncio.get_event_loop().run_forever()

1 个答案:

答案 0 :(得分:1)

这是在一个服务器上同时提供websocket和http请求的一种方法。与您建议的唯一区别是两个处理程序都在同一端口上侦听。

我认为可以通过定义两个aiohttp应用程序来监听单独的端口。但是,无论如何,您都需要具有异步功能的HTTP服务器。 AFAIK HTTPServer启用异步功能,因此您建议的解决方案无法正常工作,因为您将基于异步的服务器(websockets.serve)与非异步服务器({ {1}}。

HTTPServer
相关问题