使用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入门详解(多篇文章结合)
Mar 07 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
nodejs处理图片的中间件node-images详解
May 08 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 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
PHP4之真OO
2006/10/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
js转html实体的方法
2016/09/27 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
简述vue中的config配置
2018/01/23 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
js实现轮播图特效
2020/05/28 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python生成特定分布数的实例
2019/12/05 Python
python爬虫用mongodb的理由
2020/07/28 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
质检员的岗位职责
2013/11/15 职场文书
数控专业个人求职信范例
2013/11/29 职场文书
2015年信访工作总结
2015/04/07 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python