Using Broker Remote Publish
Remote publish allows a publisher to restrict the distribution of a document. Documents are published to the clients and territory gateways of only one remote Broker; therefore, distribution to other Brokers is limited, depending on the circumstance.
Remote publish is accessed by delivering documents to a particular client ID on a remote Broker. When the remote Broker receives the document, this client ID triggers the remote Broker to treat the document as if it had been published by the delivering Broker. The _env.destId field is removed and the document is enqueued to clients and territory gateways with matching subscriptions. If the remote Broker is on the other side of a territory gateway, then the behavior varies slightly, as summarized in the table below.
Target Remote Broker | Document Destination |
Broker in same territory | All clients on remote BrokerAll territories connected via territory gateways local to the remote Broker |
Broker peer of local territory gateway | All clients on remote BrokerAll Brokers in the remote territory All territories connected to the remote territory, except the territory of the delivery Broker |
Broker in different territory | All clients on remote BrokerAll territories connected via territory gateways local to the remote Broker |
Same as delivering Broker | Same as if the document had been published |
To perform a remote publish, you deliver documents to the client-id:publish on a remote Broker. For example:
BrokerClient bc;
BrokerEvent event;
[...]
bc.deliver( "/T/OtherBroker/:publish", event);
If you know that the remote Broker is in the same territory as the delivering Broker, then you can omit the territory:
bc.deliver( "//OtherBroker/:publish", event);
The following examples are based on the Brokers and territories shown in the Broker Territories diagram. The first letter of the Broker's name indicates its territory.
Broker Territories