【问题标题】:PHP WebSocket serverPHP WebSocket 服务器
【发布时间】:2014-11-06 17:54:26
【问题描述】:

我使用 Phirehose 获取 Twitter UserStream API 的实时连续流。到目前为止,我已经能够执行 php -S localhost:8000 index.php 并且它运行良好并且工作正常。 现在我想在 Laravel 中使用 CLI 脚本中的数据。

1) 如何将 Phirehose 数据流式传输到 Laravel?

2) 如何让此脚本在非 GUI 液滴@DigitalOcean 的背景中保持活动状态?

【问题讨论】:

  • 请分享您的尝试。
  • @JayBlanchard 我曾尝试将this lib 与 Phirehose 结合使用。不幸的是,那失败了。另外,我不知道如何执行此操作以及从哪里开始..

标签: php twitter laravel-4 phirehose


【解决方案1】:

在您的 Phirehose 脚本中,将每条推文写入数据库。在您的 Laravel 应用程序中(我假设用户正在从他们的浏览器访问它?),查询该数据库。数据库不必像 MySQL 那样繁重,它可以是 memcache、redis 或 NoSQL 选项之一。

为了让 Phirehose 脚本在后台运行,我将通过 ssh 登录并执行以下操作:

nohup php myscript.php 2>&1 &

(假设您已经为您的发行版安装了 php-cli 包。)

nohup 部分表示您可以注销并且它将继续运行。 2>&1 表示 stdout 和 stderr 消息都将写入 nohup.out。最后的& 是把它放到后台的原因。

(事实上我做了一些更复杂的事情:我让我的 Phirehose 脚本每 10 秒写入一个保持活动状态的文件。然后我有另一个 PHP 脚本在 1 分钟 cron 上启动,它将检查是否保持-alive 文件正在更新,如果没有,它将启动 phirehose 脚本运行。)

【讨论】:

  • 这有点晚了,但我很想看看您为此使用的代码。我一直在用头撞墙试图弄清楚这一点。
  • @Daniel example/ghetto-queue-* 脚本展示了一种方法(尽管使用 NoSQL DB 甚至 SQL DB 可能会更好)。对于保持活动处理,每分钟一次(可自定义)heartbeat()statusUpdate() 都会被调用。
  • 我想我会给statusUpdate() 一个机会。我真的在想办法一次抓取大约 100 条推文,所以我认为 statusUpdate() 可以处理我的支票。
  • 好的,如何自定义功能?我尝试了很多不同的东西,但似乎没有任何效果。有没有办法扩展功能,或者我应该重写库?这对我来说似乎是错误的。
  • @Daniel 听起来您应该开始一个新问题,也许显示您拥有的不起作用的代码,并解释您期望发生的事情。
猜你喜欢
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 2012-11-26
  • 2018-09-19
  • 1970-01-01
  • 2013-07-16
  • 2019-01-13
  • 2014-07-05
相关资源
最近更新 更多