PHP Classes

File: vendor/react/event-loop/examples/11-consume-stdin.php

Recommend this page to a friend!
  Classes of Hillary Kollan   Chatto PHP Websocket Chat System   vendor/react/event-loop/examples/11-consume-stdin.php   Download  
File: vendor/react/event-loop/examples/11-consume-stdin.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Chatto PHP Websocket Chat System
Websocket based chat system using Ratchet library
Author: By
Last change:
Date: 3 years ago
Size: 787 bytes
 

Contents

Class file image Download
<?php

use React\EventLoop\Factory;

require
__DIR__ . '/../vendor/autoload.php';

if (!
defined('STDIN') || stream_set_blocking(STDIN, false) !== true) {
   
fwrite(STDERR, 'ERROR: Unable to set STDIN non-blocking (not CLI or Windows?)' . PHP_EOL);
    exit(
1);
}

$loop = Factory::create();

// read everything from STDIN and report number of bytes
// for illustration purposes only, should use react/stream instead
$loop->addReadStream(STDIN, function ($stream) use ($loop) {
   
$chunk = fread($stream, 64 * 1024);

   
// reading nothing means we reached EOF
   
if ($chunk === '') {
       
$loop->removeReadStream($stream);
       
stream_set_blocking($stream, true);
       
fclose($stream);
        return;
    }

    echo
strlen($chunk) . ' bytes' . PHP_EOL;
});

$loop->run();