uuf6429/dnode-php-sync-client

Minimalistic dnode client for PHP

2.1.0 2018-01-27 17:17 UTC

This package is auto-updated.

Last update: 2024-04-23 07:16:00 UTC


README

Build Status (TravisCI) Minimum PHP Version License Packagist

Minimalistic dnode client for PHP, supports only synchronous calling of methods on remote server.

  • It can call method on remote dnode server and it can receive response.
  • It does not support any other callbacks.
  • It does not support full dnode-protocol - response from remote server must not contain any callbacks or links section.

Look at dnode-php for a more complex support of dnode protocol.

Table Of Contents

Installation

The recommended and easiest way to install Rune is through Composer:

composer require uuf6429/dnode-php-sync-client "~2.0"

Usage

Let's first start with a simple node.js server exposing echo method over dnode:

var dnode = require('dnode');
var port = process.argv[2] || 8080;

dnode({
  echo: function (data, callback) {
    callback(null, data);
  }
}).listen(port);

Now, we can call this echo method from PHP like this:

<?php

require_once 'vendor/autoload.php';

$dnode = new \uuf6429\DnodeSyncClient\Dnode();
$connection = $dnode->connect('localhost', 8080);
$response = $connection->call('echo', ['Hello, world!']);

var_dump($response);

Result:

array(2) {
  [0] =>
  NULL
  [1] =>
  string(13) "Hello, world!"
}

Run tests

To run all tests, just run ./vendor/bin/phpunit from the main directory.

Note: tests/DnodeTest.php is an integration test which needs dnode echo server running. Sources for this test server are in tests/node directory.

The test suite will automatically install npm dependencies and start the echo service on port 8080 when necessary.