使用DNode实现php和nodejs之间通信的简单实例
一、安装DNode
1,fornodejs,执行
$sudonpminstalldnode
2,forphp,利用composer来安装DNodephp
执行下列语句下载composer
$wgethttp://getcomposer.org/composer.phar
创建一个文件composer.json,然后填入如下语句,
{ "require":{ "dnode/dnode":"0.2.0" } }
执行如下语句安装,
$sudophpcomposer.pharinstall
二、利用nodejs创建简单server程序,server.js
vardnode=require('dnode'); varserver=dnode({ zing:function(n,cb){cb(n*100)} }); server.listen(7070);
三、利用php创建客户端程序client.php,其中需要引用刚才安装的dnode文件夹里面的文件autoload.php
<?php //ConnecttoDNodeserverrunninginport7070andcall //Zingwithargument33 require'lib/vendor/autoload.php';
//Thisistheclasswe'reexposingtoDNode classTemp { //Computetheclient'stemperatureandstuffthatvalueintothecallback publicfunctiontemperature($cb) { } }
$loop=newReact\EventLoop\StreamSelectLoop(); $dnode=newDNode\DNode($loop,newTemp()); $dnode->connect(7070,function($remote,$connection){ //Remoteisaproxyobjectthatprovidesusallmethods //fromtheserver $remote->zing(33,function($n)use($connection){ echo"n={$n}\n"; //Oncewehavetheresultwecanclosetheconnection $connection->end(); }); }); $loop->run(); ?>