asked 2014-09-04 01:22:21 -0700

praetp gravatar image

updated 2014-09-16 13:40:22 -0700

Nikhil Dabhade gravatar image


The second argument of BusAttachment constructor is 'allowRemoteMessages'. Can someone explain me the use case for this ? Why would you ever not want to receive remote messages ? Are remote messages coming from peers on another bus, or also from peers on the same bus ?

I noticed that when you put this to false, you don't receive about announcements anymore if you are a late joiner. However, if you are an early joiner, you still receive them. I think this is weird.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-09-05 16:14:06 -0700

Nikhil Dabhade gravatar image

Hi praetp,

The BusAttachment is an extension of the bus used by the peers for joining the bus. In simple terms, multiple bus attachments make up the bus. Every bus attachment is a way to connect to a routing node. The routing node is the central hub through which the communication between bus attachments takes place. A routing node can talk to other routing nodes in addition to enabling communication between the bus attachments connected to it.

A bus attachment can choose to receive messages from bus attachments connected to other routing nodes apart from the one it is connected to. The allowRemoteMessages, as you guessed in one of your questions, is a way for a bus attachment to tell that it does not want to receive messages from remote routing nodes.

Why would anyone want to do that ? As mentioned earlier each application has its own bus attachment. Your could have multiple applications connected to the same routing node and talk to each other. The routing node could be sitting on your router and it could be a simple setup of a coffee maker sending notifications to your TV. Both of these devices would be connected to the router and there is no need for them to receive messages from a remote routing node. In addition, AllJoyn can also be used for pure IPC on a standalone device in which case it would be simpler and faster to not have any interactions with a remote routing node. I hope that clears up the idea of why the option is present. If not, let me know and I can try and make it more clear.


edit flag offensive delete publish link more


Ok, thanks for your clarifying answer.

praetp ( 2014-09-08 00:16:30 -0700 )edit

How does this apply to the case of a bundled router? In mobile apps when a BusAttachment is constructed with Ignore (aka false in C++) it still communicates with other apps on the same device as well as on the same local network (using 14.12).

joshspain ( 2015-07-01 10:12:46 -0700 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2014-09-04 01:22:21 -0700

Seen: 42 times

Last updated: Sep 05 '14