Pergunta

Há uma família de métodos ( perdigueiro, sombra, e siga ) na API do Twitter que abre uma (principalmente) de conexão permanente e permite-lhe seguir muitos usuários. Eu executar o código de exemplo de conexão com a onda no bash, e ele funciona muito bem:. Quando um usuário especifico escreve um tweet, eu recebo um fluxo de XML em meu console

A minha pergunta é:? como posso acessar os dados com PHP que não é devolvido como uma chamada de função direta, mas é transmitido Esta informação chega esporadicamente e de forma imprevisível, e não é algo que eu tenho já tratadas nem sei por onde começar à procura de respostas. Qualquer conselhos e descrições de bibliotecas ou armadilhas seria apreciada.

Foi útil?

Solução

fopen e fgets

<?php
$sock = fopen('http://domain.tld/path/to/file', 'r');
$data = null;
while(($data = fgets($sock)) == TRUE)
{
    echo $data;
}
fclose($sock);

Este não é de forma grande (ou mesmo bom) código, mas ele deve fornecer a funcionalidade que você precisa. Você precisará adicionar tratamento de erros e dados de análise, entre outras coisas.

Outras dicas

Eu tenho certeza que o script irá expirar depois de ~ 30 segundos de escuta de dados sobre o fluxo. Mesmo se isso não acontecer, uma vez que você começar uma carga do servidor significativa, o grande número de conexões abertas e ouvindo trará o servidor é joelhos.

Eu sugiro que você dê uma olhada em uma solução AJAX que faz uma chamada para um script que apenas armazena uma fila de mensagens. Eu não sei como a API do Twitter funciona exatamente, então eu não tenho certeza se você pode ter um script executado quando solicitado para obter todos os tweets, ou se você tem que ter algum tipo de daemon anexar os tweets para uma fila que o PHP pode ler e passar de volta através de sua chamada AJAX.

Existem bibliotecas para esta estes dias que fazem coisas muito mais fácil (e lidar com os bits complicados como reconexões, manuseio de socket, TCP de retirada, etc), ou seja:

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

Eu gostaria de sugerir olhando para usar AJAX. Im não um desenvolvedor PHP, mas eu acho que você poderia conectar uma chamada de AJAX para o API e atualizar sua página web.

Phirehose é definitivamente o caminho a percorrer:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top