I have a system where there is multiple devices all running an alljoyn app with the bundled router. Every application is the exact same copy of the others, when we plug in the device, the app start and must discovers the other devices on the network. They also start to broadcast values at an interval of 500 ms.
The conditions are:
- Every devices run the exact same code
- They broadcast a set of values at an interval of 500 ms
- They must know about each other devices connected and receive the values (sent by #2)
- There is no dedicated server or host other than the devices (since they all run the exact same code)
- They run on dangerous material, the synchronization of the other devices values (sent by #2) is extremely important
I tried the following scenario:
Implemented: When a device receives an about signal, it create a 1-1 session with the discovered device. Since they all run the same code, two sessions will be created between them (the other device discovers this device as well, so it create a session too). We broadcast the value using ALLJOYN_FLAG_GLOBAL_BROADCAST with 0 as the sessionId (to broadcast to all opened session).
Problem: At about 7-8 devices connected, the session creation start to fail and the already started session are lost randomly.
Implemented: When a device receives an about signal, it joins a multipoint session with the discovered device. In this way, a device host a multipoint session and the other devices join this session to received the values. Since they all have the same code, we got n multipoint sessions in a system of n devices. We broadcast the value using ALLJOYN_FLAG_GLOBAL_BROADCAST with 0 as the sessionId (to broadcast to all opened session).
Problem: Same as the first scenario, at about 7 or 8 devices connected, the session creation start to fail and the already started session are lost randomly.
Implemented: No session are used. We broadcast the values using the sessionless signal.
Problem: Now we are capable of connecting more than 8 devices, but the values sent at 500 ms of interval are received with a delay between 1 and 20 seconds by the other devices, which is very dangerous in our case.
What would be here the good way to use Alljoyn for our problem?
Thank you for your help!