Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Minimalistic dnode client for PHP
branch: master

Reconfiguring Composer's config file

latest commit 3f6b5f80cd
Konrad Gibaszewski authored
Failed to load latest commit information.
.gitignore initial commit
DnodeSyncClient.php added connectTimeout and more verbose error message
LICENSE.txt Hopefully more understandable Usage part.
composer.json Reconfiguring Composer's config file


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 if you are looking for more complex support of dnode protocol.


Lets first start simple node.js server exposing echo method over dnode:

var dnode = require('dnode');
var port = process.argv[2] || 8080;
  echo: function (data, callback) {
    callback(null, data);

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

require_once "dnode-php-sync-client/DnodeSyncClient.php";
$dnode = new \DnodeSyncClient\Dnode();
$connection = $dnode->connect('localhost', 8080);
$response = $connection->call('echo', array('Hello, world!'));


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


  • php 5.3 - namespaces are used
  • phpunit - tests were written with phpunit 3.6

Run tests

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

_test/DnodeTest.php is integration test which needs dnode echo server running. Sources for this test server are in _test/node directory. You need to first install dnode dependency by running npm install . from directory _test/dnode. Once dnode is installed, DnodeTest.php will start the echo service on port 8080 when necessary.

The usual

We are hiring!

Something went wrong with that request. Please try again.