使用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学习笔记之FS文件模块
Jan 13 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
详解nodejs 文本操作模块-fs模块(四)
Dec 22 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs之get/post请求的几种方式小结
Jul 26 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
Nodejs实现用户注册功能
Apr 14 NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PDO::prepare讲解
2019/01/29 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
儿童学习python的一些小技巧
2018/05/27 Python
Python多继承原理与用法示例
2018/08/23 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
总经理助理的八要求
2013/11/12 职场文书
初中语文教学反思
2014/02/02 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
2015年国培研修感言
2015/08/01 职场文书
python 实现定时任务的四种方式
2021/04/01 Python