Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mosquitto-dev] Mosquitto bridging.

Hi there,

> topic random/# out root/phone/ root/bridge/

You missed out the QoS argument, so "root/phone/" is being taken as
the QoS and "root/bridge/" as the local-prefix. I suppose I could use
strtol() instead of atoi() to catch this error.

> Why does the bridge do an UNSUBSCRIBE ?

If you have a bridge topic that is "out" only, the broker sends an
UNSUBSCRIBE to handle the case that you've changed from an "in" or
"both" direction. Without this it can be very confusing if you are
playing with a bridge changing the topic directions.

Regards,

Roger

On Tue, Aug 12, 2014 at 4:33 PM, ನಾಗೇಶ್ ಸುಬ್ರಹ್ಮಣ್ಯ (Nagesh S)
<nageshblore@xxxxxxxxx> wrote:
> My aim is to 'forward' publications on my broker to other brokers such that
> publications on root/phone/random/# on my broker are forwarded to other
> brokers as root/bridge/random/#.
>
> Here is the configuration file for "my" broker.
>
> port 11884
> persistence true
> persistence_location /var/lib/mosquitto/
> log_dest stdout
> log_type debug
> #
> connection A-B-bridge
> address localhost:11885
> topic random/# out root/phone/ root/bridge/
> clientid A-B-broker
> cleansession false
> #
> connection A-C-bridge
> address localhost:11886
> topic random/# out root/phone/ root/bridge/
> clientid A-C-broker
> cleansession false
>
> Once all the brokers have started, this is what I see on "my" broker.
>
> 1407855634: Bridge A-B-broker doing local SUBSCRIBE on topic
> root/bridge/random/#
> 1407855634: Bridge A-B-broker sending CONNECT
> 1407855634: Bridge A-C-broker doing local SUBSCRIBE on topic
> root/bridge/random/#
> 1407855634: Bridge A-C-broker sending CONNECT
> 1407855634: Received CONNACK on connection A-B-broker.
> 1407855634: Bridge A-B-broker sending UNSUBSCRIBE (Mid: 2, Topic: random/#)
> 1407855634: Received PUBACK from A-B-broker (Mid: 1)
> 1407855634: Received CONNACK on connection A-C-broker.
> 1407855634: Bridge A-C-broker sending UNSUBSCRIBE (Mid: 2, Topic: random/#)
> 1407855634: Received UNSUBACK from A-B-broker
> 1407855634: Received PUBACK from A-C-broker (Mid: 1)
> 1407855634: Received UNSUBACK from A-C-broker
>
> Because I want to 'export' the publications, I used the direction as out in
> my configuration file. I was hoping to see a subscription for
> root/phone/random/# so that it is published to the remote brokers (on 11885
> and 11886 ports) with topic string root/bridge/random/#. Why does the bridge
> do a local SUBSCRIBE to root/bridge/random/# ?
>
> Why does the bridge do an UNSUBSCRIBE ? This one is very confusing ! The
> topic string is random/# as can be seen in debug messages of the remote
> brokers (on 11885 and 11886 ports).
>
> Broker on 11885 port:
>
> 1407855634: Sending CONNACK to A-B-broker (0)
> 1407855634: Received PUBLISH from A-B-broker (d0, q1, r1, m1,
> '$SYS/broker/connection/A-B-broker/state', ... (1 bytes))
> 1407855634: Sending PUBACK to A-B-broker (Mid: 1)
> 1407855634: Received UNSUBSCRIBE from A-B-broker
> 1407855634:     random/#
> 1407855694: Received PINGREQ from A-B-broker
> 1407855694: Sending PINGRESP to A-B-broker
>
>
> Broker on 11886 port:
>
> 1407855634: Sending CONNACK to A-C-broker (0)
> 1407855634: Received PUBLISH from A-C-broker (d0, q1, r1, m1,
> '$SYS/broker/connection/A-C-broker/state', ... (1 bytes))
> 1407855634: Sending PUBACK to A-C-broker (Mid: 1)
> 1407855634: Received UNSUBSCRIBE from A-C-broker
> 1407855634:     random/#
> 1407855694: Received PINGREQ from A-C-broker
> 1407855694: Sending PINGRESP to A-C-broker
>
> I tried reversing the prefixes on my bridge configuration as shown below.
>
> port 11884
> persistence true
> persistence_location /var/lib/mosquitto/
> log_dest stdout
> log_type debug
> #
> connection A-B-bridge
> address localhost:11885
> topic random/# out root/bridge/ root/phone/
> clientid A-B-broker
> cleansession false
> #
> connection A-C-bridge
> address localhost:11886
> topic random/# out root/bridge/ root/phone/
> clientid A-C-broker
> cleansession false
>
> In this case, when I publish to "my" broker with topic string,
> root/phone/random/m, I see the following in "my" broker:
>
> 1407856926: Received PUBLISH from mosqpub/12390-random- (d0, q0, r0, m0,
> 'root/phone/random/m', ... (6 bytes))
> 1407856926: Sending PUBLISH to A-B-broker (d0, q0, r0, m0, 'random/m', ...
> (6 bytes))
> 1407856926: Sending PUBLISH to A-C-broker (d0, q0, r0, m0, 'random/m', ...
> (6 bytes))
>
> As you can see, the topic prefix replacement is not happening. (The other
> brokers do show a corresponding Received PUBLISH).
>
> Can you please help me in arriving at the right bridge configuration
> parameters ?
>
> _______________________________________________
> mosquitto-dev mailing list
> mosquitto-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit
> https://dev.eclipse.org/mailman/listinfo/mosquitto-dev


Back to the top