object replication is designed and tuned for fully reliable and reasonably fair diffusion of large amounts of data. it is not tuned for real-time distribution. the "recompute which neighbors have what data" timer fires every 10 seconds, which is what you're observing. the 10 second timer duration is compiled into RTMFP and can't be changed from ActionScript.
if you require full reliability but you also want timely delivery, and only one peer is sending data, you could do a hybrid of P2P multicast (with NetStream.send()) and object replication. you could do a removeWantObjects() on receiving the data over multicast, and maybe delay doing an addHaveObjects() of the new sequence numbers for at least the multicast window duration + relay margin duration to try to avoid duplicating data on the network.
Thank you for the quick previous answer. I would like to express my admiration for нour work - mfp and rtfmp!
And I have some questions:
"you could do a removeWantObjects() on receiving the data over multicast, and maybe delay doing an addHaveObjects() of the new sequence numbers"
Honestly, I spent more than an hour trying to understand what I have to do.....
Can you describe in more detail?
"recompute which neighbors have what data" timer fires every 10 seconds".
But why nothing is sent within 10 seconds? The recomputing lasts these 10 seconds?
3. As I understand it is impossible from ActionScript to know what ID I added in addWantObj or addHaveObj?
4. When I "addWantObj"/"addHaveObj". Then over the network are transmitted only new ID, which just added, or all of them?
They will be sent immediately or after some delay? Or will somehow grouped and send?
Would like to clarify. It is about numbers. Not the data blocks!
addHaveObj(20002, 20200); -> and FP send (I have: 20002-20200). Or (I have: 10001-10100, 20002-20200).