autobahn.twisted.wamp.Application能做发布/订阅吗?
我想在使用autobahn.twisted.wamp.Application的时候,加入一些发布/订阅的功能。
如果可以的话,我希望不需要创建一个ApplicationSession类。
注册的rpc方法能否让客户端进行订阅和发布?如果可以的话,请告诉我怎么做。
1 个回答
4
好的,没问题:
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 客户端)放在 这里。