使用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进程管理模块forever详解
Jun 01 NodeJs
nodejs文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
初始Nodejs
Nov 08 NodeJs
初探nodeJS
Jan 24 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
一些不错的js函数ajax
2008/08/20 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
实例解析Array和String方法
2016/12/14 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
詹天佑教学反思
2014/04/30 职场文书
初中家长意见
2015/06/03 职场文书
子女赡养老人协议书
2016/03/23 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技