autobahn.twisted.wamp.Application能做发布/订阅吗?

1 投票
1 回答
671 浏览
提问于 2025-04-18 17:25

我想在使用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 客户端)放在 这里

撰写回答