使用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命令行参数处理模块commander使用实例
Sep 17 NodeJs
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
初探nodeJS
Jan 24 NodeJs
使用nodejs下载风景壁纸
Feb 05 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
nodejs之get/post请求的几种方式小结
Jul 26 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 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时间戳转换的示例
2014/03/31 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
后勤部长岗位职责
2013/12/14 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
村党组织公开承诺书
2015/04/30 职场文书
党支部评议意见
2015/06/02 职场文书
大学生受助感言
2015/08/01 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python