Autobahn.twisted.wamp.应用程序是否可以发布/订阅?

2022-04-18 00:00:00 python twisted autobahn wamp-protocol

问题描述

我想使用一些发布/订阅功能以及来自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。

相关文章