So I made this social file sharing app (http://arbo.re/).
Basically it's working by running a go-ipfs node and having each 'identity' generate a keypair. Identity information are then published on ipns using that keypair. Once you get these informations, you can start sending message between nodes using pubsub, get notifications and so on ...
More details here: https://github.com/ipfs/go-ipfs/issues/3866
Problem is, my real world tests shows that there is still connectivity problems in double NAT case (which would be most of the time for this project) for ipns, pubsub and normal block queries. Basically, two person would not be able to resolve the ipns entry (or it would take minutes), pubsub messages would not get through.
How can I work around or reduce this problem ?