使用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中自定义事件实例
Jun 20 NodeJs
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python深度优先算法生成迷宫
2018/01/22 Python
Python断言assert的用法代码解析
2018/02/03 Python
django中静态文件配置static的方法
2018/05/20 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
绩效工资分配方案
2014/01/18 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
寒假实习自荐信
2014/01/26 职场文书
村级个人对照检查材料
2014/08/22 职场文书
苏州园林导游词
2015/02/03 职场文书
学前教育见习总结
2015/06/23 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书