使用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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
Nodejs+express+html5 实现拖拽上传
Aug 08 NodeJs
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
nodeJS实现路由功能实例代码
Jun 08 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中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
php显示页码分页类的封装
2017/06/08 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
13个PHP函数超实用
2015/10/21 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
Python学习思维导图(必看篇)
2017/06/26 Python
Python3生成手写体数字方法
2018/01/30 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
百度软件工程师职位
2013/02/14 面试题
网上卖盒饭创业计划书范文
2014/02/07 职场文书
商场主管竞聘书
2014/03/31 职场文书
应用外语系自荐信
2014/06/26 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python