Может autobahn.twisted.wamp.Application сделать pub/sub?
Я хотел бы использовать некоторые функции pub/sub вместе с rpc из autobahn.twisted.wamp.Application
Я бы предпочел не создавать класс ApplicationSession, если я могу обойтись без этого.
Могут ли зарегистрированные методы rpc вызвать клиентские подписки и опубликовать? Если они могут, пожалуйста, покажи мне, как.
1 ответ
Решение
Да, конечно:
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), вызываемый абонент (компонент WAMP выставляет com.example.triggersubscribe
) будет динамически подписываться на com.example.topic1
,
Вы можете опубликовать в зарегистрированной процедуре также, конечно: app.session.publish()
,
Я добавил полный пример (включая JS-клиент) здесь.