Может 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-клиент) здесь.

Другие вопросы по тегам