‘壹’ php与nodejs通信问题
就几条请求的话,php用fopen或curl访问一个nodejs服务器网址,用参数传递下要求..
频繁或复杂通讯是要用rpc的..
‘贰’ node.js 怎么访问一个php接口
可以的团帆,以GET请求为例
var http = require('http');
var qs = require('querystring');
var data = {
a: 123,
time: new Date().getTime()};//这是需塌扮雹要提交的数据
var content = qs.stringify(data);
var options = {
hostname: '127.0.0.1',
port: 10086,
path: '/pay/pay_callback?' + content,
method: 'GET'缺握
};
var req = http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.end();
‘叁’ PHP和Nodejs能配合使用吗
可以,如何实现不是很清楚,具体案例为drupal的nodejs模块,以及若干依赖于此nodejs模块的其他模块,比如一些即时聊天的模块就可以选择性的依赖于nodejs模块
‘肆’ 如何利用php执行nodejs文件
一,安装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();
?>
‘伍’ PHP 与 NodeJS 如何共用 Session
PHP 与 NodeJS共用 Session的方法是PHP暴露一个Service,向Node提供Session数据。php_session.php?SID=xxxx
1、php代码:
<?php
function getSessionByID($SID) {
if (session_id()) {
// 关闭当前session
session_destroy();
}
// 初始化指定session
session_id($SID);
session_start();
// 返回操作接口更友好的JSON
// 必要的FLAG看这里 http://www.php.net/manual/en/json.constants.php
return json_encode($_SESSION);
}
header('Content-Type:application/json');
echo getSessionByID($_GET['SID']);
?>
2、node实现代码:
var request = require('request');
request('http://localhost/php_session.php?SID=xxxx', function(err, res, body) {
if (!err && res.statusCode == 200) {
// 根据需要使用body(json)
}
});
‘陆’ node调用php接口怎么调用
这个我也不太清楚!建议楼主你可以去后盾人平台看看,里面的东西不错
‘柒’ nodejs 怎么用到 php 网站上
NodeJS是不能行升坦用到PHP网站上的,因为NodeJS也是运行于服务端的。你档桐可以架设两个服务器,一个用NodeJS,一个用PHP,然后NodeJS从PHP上用SOAP等笑液方式存取数据就行了。
‘捌’ Mac 中使用多版本node & PHP
vue开发过程中使用npm来安装依赖的第三方包,但是不同版本的npm对包的维护方式不一样,更新node后旧项目易无法安装包导致无法运行,因此需要多个版本的node。
Mac中可以使用brew来管理node工具,使用多版本的node时需要安装nvm,之渗返前已经安装了node的话需要首先删除node, brew list 可查看是否已安装node和nvm。
在~/.zshrc或者~/.bashrc中添加下祥喊神面命令,取决于终端使用的哪种
执行 source ~/.zshrc or source ~/. bashrc
查看nvm是否安装成功 nvm -v
假如需要安装10.24.0
使用 node -v , npm -v 查看是否安装成功
nvm list 可列出已安装的node版本,假如安装了v10.24.0 和v15.12.0两个版本,使用15版本时执行命令
使用brew控制PHP版本,加入准备使用PHP7.2 和 PHP7.4
首先安装PHP
在 ~/.zshrc 中添加
使用PHP7.2时
并且将 ~谨亏/.zshrc 中[email protected]的配置注释,执行
php -v 查看当前版本
‘玖’ nodejs搭建服务器运行php
nodejs其实是非常底层的,从功能上说,它既是apache也是php。像搭建http服务器这种功能,本来是apache已经封装好的,但nodejs需要我们手动来搭建。其实在实际顷孝应用中,我们可以使用现成的框架。但这磨乎伍里,我想手动搭建,也加深一下对http服务器的理解。
我们node执行下面这个文件,我命名为瞎或http.js,它将创建一个httpServer并监听3000端口。