使用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打包工具整合到鼠标右键的方法
May 11 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
Mar 28 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
Nodejs模块载入运行原理
Feb 23 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
JS实现的点击表头排序功能示例
2017/03/27 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
matplotlib给子图添加图例的方法
2018/08/03 Python
Python引用计数操作示例
2018/08/23 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
Django保护敏感信息的方法示例
2019/05/09 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
教师辞职报告范文
2014/01/20 职场文书
三年级学生评语
2014/04/23 职场文书
高中生操行评语
2014/04/25 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Python利用FlashText算法实现替换字符串
2022/03/31 Python