We are attempting to finalise our implementation of crossbar, after upgrading from a version of autobahn that implemented the router, before the fork project. We are using Rlinks to connect from a local node to a cloud node, data is bidirectional by turning on all local/remote forwarding in config. So far a local and cloud node have a 1-1 relation. At current, for every local node there is a cloud node.
The issue: Serving the same web UI using autobahn-js and crossbar on both cloud and local should pass data between them, but pubsub does not work in the direction from cloud → local.
Local UI (rpc) → reaction on cloud UI (register works)
Local UI (pub) → reaction on cloud UI (sub works)
Cloud UI (rpc) → reaction on local UI (register works)
Cloud UI click → no reaction on local (sub doesn’t work, nothing in local router about pub being received)
The starting sequence for processes used are:
Cloud router - Local router - core system
If by changing this to:
cloud router - local router - core system - restart cloud
This then resolves the publish issue from above, but is not 100% perfect.
Some other observations:
- we regularly see “on_subscription_create: sub ID XXX already in map” in the local node console alongside
- system data in the same realms
- roles (we believe) are correctly configured for purpose
At current, we are not sure how to progress this issue into a resolution. What are some areas we should be addressing? Are there some rlink settings that we can empty the map (if it is cached)?
Added further context to the issue:
We are having an issue with publish in crossbar io 22.6.1 and previous versions with Rlinks. We require Rlinks to forward local topic publications and RPC’s to cloud and vice versa.
There is a crossbar router running on a local machine and another running on an AWS machine. Both have connected JS clients using Autobahn-JS which have 4 buttons to:
- Subscribe to “com.browser.hub”
- Subscribe to “com.browser.cloud”
- Publish to “com.browser.hub”
- Publish to “com.browser.cloud”
- On the cloud machine, I subscribe to “com.browser.cloud” then subscribe to “com.browser.hub”
- On the local machine, I subscribe to “com.browser.cloud” then subscribe to “com.browser.hub”
- On the cloud machine, I publish to “com.browser.cloud” then publish to “com.browser.hub”
- On the local machine, I publish to “com.browser.cloud” then publish to “com.browser.hub”
You can see from the logs that the first 3 publishes are successfully sent to 2 receivers (sub on local and cloud) but the last one only goes to 1 receiver (sub on local):
(Images posted below)
This means that the second subscription is not being forwarded over the RLink.
When making the subscriptions, this error message always accompanies subscriptions that are failed to be forwarded:
I believe that there is an issue with the syncing of sub IDs over RLinks.
could you explain what exactly that means?
Hi Tobias, thanks for getting back to me.
What I mean in more details is that; a system we have been working on has been using autobahn-python 0.8.8 which contains/contained a basic WAMPv2 router, and have been taking the steps to move to the up-to-date platform of crossbar and autobahn. We are now closing in on the completion of this project
ah, ok, great! the latest autobahn works with the latest crossbar, and should also work with the old router that had been in autobahn until 0.8.8, and you don’t need rlinks for that.