Search code examples
phptwitterlaravel-4phirehose

PHP WebSocket server


I use Phirehose to get a live and continuous stream of the Twitter UserStream API. So far I have been able to execute php -S localhost:8000 index.php and it work fire up and work fine. Now I want to use the data from the CLI script in Laravel.

1) How can I stream the Phirehose data to Laravel?

2) How can I get this script to stay active in the background of a non-GUI droplet @ DigitalOcean?


Solution

  • In your Phirehose script, write each tweet to a database. In your Laravel application (which I am assuming is being accessed by users, from their browsers?), query that database. The database need not be as heavy as MySQL, it could instead be memcache, redis or one of the NoSQL options.

    For getting a Phirehose script to run in the background I would login over ssh and do this:

    nohup php myscript.php 2>&1 &
    

    (This assumes you have installed the php-cli package for your distro.)

    The nohup part means you can logout and it will keep running. The 2>&1 means both stdout and stderr messages will be written to nohup.out. The & at the end is what puts it into the background.

    (In fact I do something a bit more complicated: I have my Phirehose script write to a keep-alive file every 10 seconds. I then have another PHP script that is started on 1-minute cron, that will check that keep-alive file is being updated and, if not, it will start the phirehose script running.)