In this paper we consider the problem of sending data in real time from information sources to sets of receivers, using peer-to-peer communications. We consider several network models and for each model we identify schemes that achieve successful diffusion of data at optimal rates. For edge-capacitated networks, we show optimality of the so-called "random-useful" packet forwarding algorithm. As a byproduct, we obtain a novel proof of a famous theorem of Edmonds, characterising the broadcast capacity of a capacitated graph. For node-capacitated networks, assuming a complete communication graph, we show optimality of the so-called "most-deprived" neighbour selection scheme combined with random useful packet selection. We then show that optimality is preserved when each peer can exchange data with a limited number of neighbours, when neighbourhoods are dynamically adapted according to a particular scheme. Finally, we consider the case of multiple information sources, each creating distinct information to be disseminated to a specific set of receivers. In this context, we prove optimality of the so-called "bundled most-deprived neighbour random useful packet" selection.