您还可以使用套接字作为两者之间的直接通信方式,使用 node.js 的 net 模块和 php 的 socket 模块。这是一个例子。
侦听连接的简单节点 js 服务器
var net = require('net');
var listenport = 3000; // Should be the same as in the php script
// Set up server
var Server = net.createServer(function(Sock) {
console.log('Client Connected.');
Sock.on('data', function(data) {
console.log('Data received: ' + data);
dataobj = JSON.parse(data);
console.log('Item ID: ' + dataobj.itemid);
// and so on
});
Sock.on('end', function() {
console.log('Client Disconnected.');
});
Sock.pipe(Sock);
});
Server.listen(listenport, function() {
console.log('Listening on port ' + listenport);
});
连接节点实例的简单 PHP
<?php
error_reporting(E_ALL);
$port = 3000; // Port the node app listens to
$address = '127.0.0.1'; // IP the node app is on
// Create socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}
// Connect to node app
$result = socket_connect($socket, $address, $port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
}
// Data we want to send
$data = array('itemid' => '1234567', 'steamid' => '769591951959', 'otherinfo' => 'hi there');
// Prepares to transmit it
$encdata = json_encode($data);
socket_write($socket, $encdata, strlen($encdata));
socket_close($socket);
echo 'Sent data\n';
?>
原文来源:github 如何将php连接到node js