使用DNode实现php和nodejs之间通信的简单实例


Posted in NodeJs onJuly 06, 2015

一、安装DNode

1, for nodejs, 执行

$ sudo npm install dnode

2, for php, 利用composer来安装DNode php

执行下列语句下载composer

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

创建一个文件composer.json,然后填入如下语句,
{

    "require": {

        "dnode/dnode": "0.2.0"

    }

}

执行如下语句安装,
$ sudo php composer.phar install

二、利用nodejs创建简单server程序, server.js

var dnode = require('dnode');

var server = dnode({

    zing: function (n, cb) { cb(n * 100) }

});

server.listen(7070);

三、利用php创建客户端程序client.php, 其中需要引用刚才安装的dnode文件夹里面的文件autoload.php
<?php

// 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 React\EventLoop\StreamSelectLoop();

$dnode = new DNode\DNode($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();

?>

四、执行服务器端
$ node server.js

五、执行客户端调用服务端程序
$ php client.php

这会调用服务器端的加法程序,然后输出结果
n = 3300
NodeJs 相关文章推荐
用nodejs搭建websocket服务器
Jan 23 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 #NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 #NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 #NodeJs
nodejs导出excel的方法
Jun 30 #NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 #NodeJs
使用nodejs开发cli项目实例
Jun 03 #NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 #NodeJs
You might like
PHP中数组的三种排序方法分享
2012/05/07 PHP
基于php权限分配的实现代码
2013/04/28 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
使用python实现rsa算法代码
2016/02/17 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
.net软件工程师面试题
2015/03/31 面试题
白酒市场营销方案
2014/02/25 职场文书
校园新闻稿范文
2015/07/18 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js