1. Install DNode
1, for nodejs, execute
$ sudo npm install dnode
2, for php, use composer to install DNode php
Execute the following statement to download composer
Create a file composer.json and fill in the following statements,
{
"require": {
"dnode/dnode": "0.2.0"
}
}
Execute the following statement to install,
$ sudo php composer.phar install
2. Use nodejs to create a simple server program, server.js
var dnode = require('dnode');
var server = dnode({
zing: function (n, cb) { cb(n * 100) }
});
server.listen(7070);
3. Use PHP to create the client program client.php, which needs to reference the file autoload.php in the dnode folder you just installed
// Connect to DNode server running in port 7070 and call
// Zing with argument 33
require 'lib/vendor/autoload.php';
// This is the class we're exposing to DNode
class Temp
{
// Compute the client's temperature and stuff that value into the callback
Public function temperature($cb)
{
}
}
$loop = new ReactEventLoopStreamSelectLoop();
$dnode = new DNodeDNode($loop, new Temp());
$dnode->connect(7070, function($remote, $connection) {
// Remote is a proxy object that provides us all methods
// from the server
$remote->zing(33, function($n) use ($connection) {
echo "n = {$n}n";
// Once we have the result we can close the connection
$connection->end();
});
});
$loop->run();
?>
4. Execute server side
$ node server.js
5. Execute the client to call the server program
$ php client.php
This calls the server-side addition routine and prints the result
n = 3300