8
votes

Comment gérer les données en continu dans PHP?

Il existe une famille de méthodes ( Birddog, Shadow et Suivre ) Dans l'API Twitter qui ouvre une connexion (principalement) permanente et vous permet de suivre de nombreux utilisateurs. J'ai exécuté le code de connexion d'échantillon avec CURL dans Bash, et cela fonctionne bien: lorsqu'un utilisateur je spécifie écrit un tweet, je reçois un flux de XML dans ma console.

Ma question est la suivante: Comment puis-je accéder aux données avec PHP qui n'est pas retourné en tant qu'appel de fonction directe, mais est diffusée? Ces données arrivent sporadiquement et imprévisibles, et ce n'est pas quelque chose que j'ai jamais traité ni je sais où commencer à chercher des réponses. Tout conseil et descriptions de bibliothèques ou de pièges seraient appréciés.


0 commentaires

5 Réponses :


0
votes

Je suggérerais de chercher à utiliser Ajax. Je ne suis pas un développeur PHP, mais je penserais que vous pourriez câbler un appel AJAX à l'API et mettre à jour votre page Web.


0 commentaires

6
votes

fopen et fgets xxx

ceci est en aucun cas grand (ou même bon) de code mais Il devrait fournir les fonctionnalités dont vous avez besoin. Vous devrez ajouter une manipulation des erreurs et une analyse de données entre autres.


1 commentaires

Remarque Le support de flux a été ajouté à Fopen () dans PHP 5.0 afin que vous aurez besoin au moins de cela.



2
votes

Je suis sûr que votre script sera expirant après environ 30 secondes d'écoute des données sur le flux. Même si ce n'est pas le cas, une fois que vous obtenez une charge de serveur important, le nombre de connexions ouvertes et d'écoute apportera le serveur à genoux.

Je vous suggérerais de jeter un coup d'œil à une solution AJAX qui appelle un script qui stocke une file d'attente de messages. Je ne sais pas comment l'API Twitter fonctionne exactement cependant, donc je ne sais pas si vous pouvez avoir un script exécuté à la demande d'obtenir tous les tweets ou si vous devez avoir une sorte de démon ajoute les tweets à une file d'attente que PHP peut lire et transmettre via votre appel AJAX.


2 commentaires

Pour autant que je sache, c'est juste une connexion. Twitter m'envoie un XML (est-ce appelé un objet?) Par message; Mon serveur ne fait aucun requérant actif, seulement recevoir / écouter.


Je suggérerais de mettre en place un démon qui écoute (peut-être écrit à Python, il serait probablement très simple) et décharge tous les tweets dans une base de données MySQL. Vos scripts PHP peuvent ensuite lire dans la base de données.



2
votes

Il existe des bibliothèques pour cela ces jours-ci qui rendent les choses beaucoup plus faciles (et gérer les bits difficiles comme la reconnexion, la manipulation de la prise, la backoff TCP, etc.), c'est-à-dire:

http://code.google.com/p/phirehose/


0 commentaires

0
votes

pHirehose est définitivement la voie à suivre:

http://code.google.com/p/phirehose/


0 commentaires