【问题标题】:Twitter streaming via PHP - how do I stop it?Twitter 通过 PHP 流式传输 - 我该如何阻止它?
【发布时间】:2014-07-21 15:25:24
【问题描述】:

我一直在编写使用 Twitter Streaming API 的应用程序。我正在使用在 GIThub 上找到的 TheMattHarris OAuth 库。这就是我通常设置流媒体流程的方式。

我首先像这样异步调用stream.php:

xmlhttp.onreadystatechange = function(){
   // end of stream
}
xmlhttp.open("GET", "stream.php?term="+term, true);
xmlhttp.send();

我的 stream.php 看起来像这样:

$connection = new tmhOAuth(array(
   'consumer_key' => CONSUMER_KEY,
   'consumer_secret' => CONSUMER_SECRET,
   'user_token' => USER_TOKEN,
   'user_secret' => USER_SECRET,
));
$method = "https://stream.twitter.com/1.1/statuses/filter.json";
$connection->streaming_request('POST', $method, array('track'=>$term), 'twitter_callback');
tmhUtilities::pr($connection);

function twitter_callback($data, $length, $metrics) {
   // handle tweet here
}

问题是我似乎无法停止这个流。我不知道它会运行多长时间才能自行耗尽。由于这是一个 Web 应用程序,我可以刷新页面并搜索新术语,但旧流似乎仍在运行。

所以我有两个问题:如何停止此类流?这是实现 Twitter 流的正确方法吗?

【问题讨论】:

    标签: php twitter


    【解决方案1】:

    我认为xmlhttp.abort() 可以解决问题。您可以在此处查看如何执行中止按钮的示例:

    http://help.dottoro.com/ljomfaxv.php

    【讨论】:

    • 但我认为这只会阻止 readychange 事件触发并更改 readystate。另一方面,流式传输发生在 PHP 端,不会受此影响
    • 如果没有流连接到您的 PHP 脚本,它将停止执行。虽然我不完全确定,但我认为 abort(); 是正确的方法......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多