【发布时间】:2016-09-19 02:29:21
【问题描述】:
我正在使用带有 asyncio 的高速公路,并且我正在尝试在扩展 WebSocketServerFactory 的类中创建一个方法,该方法每 x 秒运行一次。
高速公路网站上的文档是这样做的:
from autobahn.asyncio.websocket import WebSocketServerFactory
factory = WebSocketServerFactory()
factory.protocol = MyServerProtocol
loop = asyncio.get_event_loop()
coro = loop.create_server(factory, '127.0.0.1', 9000)
server = loop.run_until_complete(coro)
我只是简单地将 WebSocketServerFactory 类替换为扩展它的类,并且我想每隔 x 秒在其中运行一个方法。
我在高速公路网站上找到了一个这样的例子,但它使用了 twisted 而不是 asyncio。
这是我想要的一个简短示例(original and full version),但该示例使用了扭曲:
class CustomServerFactory(WebSocketServerFactory):
def __init__(self, url):
WebSocketServerFactory.__init__(self, url)
self.tick()
def tick(self):
print("tick!")
self.do_something()
reactor.callLater(1, self.tick)
如何使用 asyncio 实现相同的目标?
【问题讨论】:
标签: python python-asyncio autobahn