使用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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
浅谈Node的内存泄露问题
May 06 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
Laravel框架表单验证详解
2014/09/04 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
windows上安装Anaconda和python的教程详解
2017/03/28 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python reques接口测试框架实现代码
2020/07/28 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
软件测试面试题
2014/01/05 面试题
办公室保洁员岗位职责
2013/12/02 职场文书
社区科普工作方案
2014/06/03 职场文书
亮剑观后感
2015/06/05 职场文书
关于军训的感想
2015/08/07 职场文书