php - Diffuser des infos à des utilisateurs spécifiques (amis, abonnés)

Nouveau WRInaute
Bonjour à tous,

voilà j'aimerai savoir quels sont les process utilisés par twitter, facebook et autres pour qu'un utilisateur reçoivent les infos publiés par un des ses amis ou un de ceux auxquels il est abonné.

Je m'explique: j'ai réalisé une application mobile qui produit des images (ça pourrait être du texte), pour l'instant l'appli permet de les partager sur twitter, facebook, etc...

J'aimerais pouvoir améliorer l'appli pour que les images soit directement visible sur celle-ci. Ainsi les images produites par ses amis seraient visible sur une sorte de mur consultable sur l'application elle-même. Beaucoup d'applications font cela, face, twitter, instagram....

Ma question est donc comment diffuser une image produite par un utilisateur (et stocker sur mon serveur) à tous ces abonnés/ amis ?

J'arrive à conceptualiser la chose pour la diffuser à tout le monde: on lit dans une table prévues à cet effet les dernières images publiés par tout les utilisateurs, mais pour diffuser certaines images à certains individus ?

Dans mon esprit, toutes les images doivent être inscrites dans une table spécifiques avec l'id de celui les publiant, puis l'utilisateur à sa connexion lance une requête sur cette table avec comme condition where une liste d'id correspondant à ces amis...

Genre => SELECT image_id FROM table_image WHERE membre_id IN (liste_ami) LIMIT 10;
Avec cette sous requête => SELECT ami_id FROM table_ami WHERE membre_id=user_id;
je peux déduire list_ami

Le problème est que même en indexant tout bien, cela semble devenir une vrai usine à gaz dès qu'il y a plusieurs centaines d'utilisateurs simultanés avec des centaines d'amis chacun !!

Vous pensez que ces applications travaillent de cette façon ??

En attendant vos avis,
merci d'avance
 
WRInaute accro
Ils utilisent websockets, server push, comet, etc ...
Donc technologies: NodeJS, Ratchet, Twisted, Expressjs, Socket.IO, ...
 
Nouveau WRInaute
spout a dit:
Ils utilisent websockets, server push, comet, etc ...
Donc technologies: NodeJS, Ratchet, Twisted, Expressjs, Socket.IO, ...

Merci, ton post à le mérite d'être clair et de pouvoir bien m'orienter.

J'avais brièvement pris connaissance des serveurs push et comet, mais je pense que ce sont effectivement des gros sites qui peuvent se permettre d'utiliser ces technologies. A mon niveau, je vais plutôt essayer de simuler cela avec du bon vieux AJAX, ce ne sera pas du temps réél mais toutes les 4-5 mn ça peut le faire

Et je me mettrai à la page sur les technologies que tu m'a cité,
merci encore
 
Discussions similaires
Haut