【发布时间】:2021-11-28 19:15:28
【问题描述】:
我已经在 python 中使用内置库(如WebSocketServerFactory)实现了 webSocket 服务器,如下代码所示:
from autobahn.asyncio.websocket import WebSocketServerProtocol, WebSocketServerFactory
import ssl
import asyncio
sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
sslcontext.load_cert_chain(self.sslcert, self.sslkey)
factory = WebSocketServerFactory(u"{0}://127.0.0.1:{1}".format(ws, self.port))
factory.protocol = ResourceProtocol
loop = asyncio.get_event_loop()
coro = loop.create_server(factory, '', self.port, ssl=sslcontext)
self.server = loop.run_until_complete(coro)
我想知道是否可以添加另一个带有 event_loop 的服务器,它将运行简单的 http 服务器来接受 GET/POST 请求?
【问题讨论】:
-
有什么理由不使用像 Flask 或 FastAPI 这样的通用 Web 框架?
-
您好,感谢您的评论。或许你能给我参考一个在其中一个框架中实现的 websocket 和 http 服务器的例子吗?
-
在这里试试:fastapi.tiangolo.com/advanced/websockets 我使用 FastAPI 已经有一段时间了,取得了很大的成功。
-
它确实似乎更容易实现......但我看不到如何将 ssl 层添加到我的 websocket 和 http 处理程序。也许你有一些添加它的经验?
-
您使用
uvicorn启动应用程序。只需传递适当的标志。 uvicorn.org/settings/#https
标签: python websocket https server autobahn