![](/img/trans.png)
[英]How to create a python websocket with SSL and use a cookie in it?
[英]Create websocket over ssl and https server in python
我已经使用WebSocketServerFactory
等内置库在 python 中实现了 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 请求?
理论上应该是可以的。
您可以使用
asyncio.gather() allows to wait on several tasks at once.
例如,使用aiohttp http 服务器运行 websocket 服务器(高速公路)
# websocket server autobahn
coro = loop.create_server(factory, '', self.port, ssl=sslcontext)
# http server using aiohttp
runner = aiohttp.web.AppRunner(app)
loop.run_until_complete(runner.setup())
site = aiohttp.web.TCPSite(runner)
server = loop.run_until_complete(asyncio.gather(coro, site.start()))
loop.run_forever()
或者您可以使用 loop.run_until_complete() function 两次来完成这两个功能。
注意:我没有测试过这段代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.