Diogo Cordeiro 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
..
examples 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
src 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
tests 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
.gitignore 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
.travis.yml 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
CHANGELOG.md 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
LICENSE 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
README.md 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
composer.json 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
composer.lock 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ
phpunit.xml.dist 96c4e57ac0 Add gs-wsRealtime by Chimo 5 gadi atpakaļ

README.md

React/ZMQ

ZeroMQ bindings for React.

Build Status

Install

The recommended way to install react/zmq is through composer.

{
    "require": {
        "react/zmq": "0.2.*|0.3.*"
    }
}

Example

And don't forget to autoload:

<?php
require 'vendor/autoload.php';

Here is an example of a push socket:

<?php

$loop = React\EventLoop\Factory::create();

$context = new React\ZMQ\Context($loop);

$push = $context->getSocket(ZMQ::SOCKET_PUSH);
$push->connect('tcp://127.0.0.1:5555');

$i = 0;
$loop->addPeriodicTimer(1, function () use (&$i, $push) {
    $i++;
    echo "sending $i\n";
    $push->send($i);
});

$loop->run();

And the pull socket that goes with it:

<?php

$loop = React\EventLoop\Factory::create();

$context = new React\ZMQ\Context($loop);

$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:5555');

$pull->on('error', function ($e) {
    var_dump($e->getMessage());
});

$pull->on('message', function ($msg) {
    echo "Received: $msg\n";
});

$loop->run();

Todo

  • Integration tests
  • Buffer limiting
  • Do not push messages if no listener

Tests

To run the test suite, you need PHPUnit.

$ phpunit

License

MIT, see LICENSE.