Autobahn.twisted.wamp.应用程序是否可以发布/订阅?
问题描述
我想使用一些发布/订阅功能以及来自aubahn.twisted.wamp.Application的RPC
如果我可以不创建ApplicationSession类,我宁愿不这样做。
注册的RPC方法是否可以引起客户端订阅和发布? 如果他们可以,请告诉我怎么做。
解决方案
是,当然:
def onEvent(msg):
print("got event: {}".format(msg))
@app.register('com.example.triggersubscribe')
def triggerSubscribe():
yield app.session.subscribe(onEvent, 'com.example.topic1')
当triggerSubscribe
被调用(例如从另一个WAMP组件远程调用)时,被调用者(暴露com.example.triggersubscribe
的WAMP组件)将动态订阅com.example.topic1
。
当然,您也可以从注册过程中发布:app.session.publish()
。
我已经添加了完整的示例(包括JS客户端)here。
相关文章