Autobahn-JS не получает подписку для публикации на той же странице (образец)

У меня есть настройка сервера crossbar.io, и я пробую пример кода в браузере (chrome 81.x) на https://github.com/crossbario/autobahn-js

    // 1) subscribe to a topic
   function onevent(args) {
      console.log("Event:", args[0]);
   }
   session.subscribe('com.myapp.hello', onevent);

   // 2) publish an event
   session.publish('com.myapp.hello', ['Hello, world!']);

Я не вижу сообщения о подписке. С тех пор я разработал собственное приложение и вижу то же самое. Веб-страница, на которой публикуется событие, не имеет подписки. Другими словами, если у меня одна и та же страница открыта в 2 окнах и страница A публикует сообщение, страница B получает событие подписки, а страница A - нет.

Не уверен, проблема ли это в autobahn-js или crossbar.io.

У меня ранее была реализация WAMP v1 (с настраиваемым маршрутизатором), которая поддерживала это. Для меня очень важно убедиться, что страница видит собственные сообщения публикации. Мне предстоит много работы по преобразованию кода, если это невозможно.

1 ответ

Решение

Нашел ответ. Это в документации в зависимости от того, какую версию Google найдет для вас.

https://github.com/crossbario/autobahn-js/blob/master/doc/programming.md

По умолчанию издатель не будет получать событие, которое он публикует, даже если издатель сам подписан на тему, на которую подписан. Это поведение можно изменить, передав в параметрах exclude_me: False.

session.publish('com.myapp.complex', [1, 2, 3], {foo: "bar"}, {exclude_me: false});
Другие вопросы по тегам