Skip to content
forked from bergie/dnode-php

DNode RPC protocol implementation for PHP

License

Notifications You must be signed in to change notification settings

frega/dnode-php

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DNode protocol for PHP

This project implements the DNode remote procedure call protocol for PHP. The intent is to enable PHP scripts to act as part of a distributed Node.js cloud, allowing Node to call PHP code, and PHP to call Node code.

You can read more about DNode and PHP in the introductory blog post.

Installing

dnode-php can be installed using the Composer tool. You can either add dnode/dnode to your package dependencies, or if you want to install dnode-php as standalone, go to the main directory of this package and run:

$ wget http://getcomposer.org/composer.phar 
$ php composer.phar install

You can then use the composer-generated autoloader to access the DNode classes:

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

Running the examples

After installing, you can run the DNode examples located in the examples directory. Each example contains both a client and a server.

For example:

$ php examples/simple/server.php
$ php examples/simple/client.php 
n = 3300

The examples have been written to be compatible with the DNode examples, meaning that you can use any combination of PHP-to-PHP, Node-to-Node, PHP-to-Node, or Node-to-PHP as you wish.

$ node simple/client.js 
n = 3300

Current limitations

  • Only regular, non-encrypted TCP sockets are supported
  • Only one simultaneous connection supported

Performance

Surprisingly, with simple calls PHP is faster as a DNode client than Node.js. Talking to the simple example DNode server from the dnode repository:

$ time php examples/simple/client.php 
n = 3300

real	0m0.067s
user	0m0.030s
sys	0m0.030s

The same with a Node.js client:

$ time node simple/client.js 
n = 3300

real	0m0.173s
user	0m0.140s
sys	0m0.030s

Development

dnode-php is under heavy development. If you want to participate, please send pull requests.

About

DNode RPC protocol implementation for PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 96.5%
  • JavaScript 3.5%