使用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服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
使用vs code开发Nodejs程序的使用方法
Sep 21 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 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中对数据库操作的封装
2006/10/09 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
基于Python pip用国内镜像下载的方法
2018/06/12 Python
Python3.6简单反射操作示例
2018/06/14 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python实现的汉诺塔算法示例
2019/10/23 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
通过实例解析Python return运行原理
2020/03/04 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
《在家里》教后反思
2014/03/01 职场文书
2014年护理部工作总结
2014/11/14 职场文书
毕业生个人自荐书
2015/03/05 职场文书
会议通知范文
2015/04/15 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电