使用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 Express框架中处理404页面一个方式
May 28 NodeJs
14款NodeJS Web框架推荐
Jul 11 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 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
写一个用户在线显示的程序
2006/10/09 PHP
网站当前的在线人数
2006/10/09 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
php实现微信扫码支付
2017/03/26 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
用python写测试数据文件过程解析
2019/09/25 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
python中温度单位转换的实例方法
2020/12/27 Python
PyQt实现计数器的方法示例
2021/01/18 Python
UNIX文件系统常用命令
2012/05/25 面试题
花店创业计划书范文
2014/02/07 职场文书
学校招生宣传广告词
2014/03/19 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
铁人观后感
2015/06/16 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS