我如何在php站点上的专用node.js服务器上使用Socket.io?

时间:2013-10-06 21:53:15

标签: php node.js websocket socket.io dnode

对于使用PHP编码的Web应用程序,我正在为许多传统上使用AJAX的功能提供支持,例如实时聊天,使用Socket.io。为了在不使用Apache服务器的情况下使用Websockets,我有专门为Websocket连接运行node.js的服务器。我打算使用DNode来允许php脚本调用node.js Websocket函数。我该怎么做?如果可能,请提供一个简单的例子。

我意识到这可能不是最有效的结构,但由于大量连接同时使用实时功能,从PHP运行Websockets将非常耗费服务器。我也知道还有其他方法可以实现服务器和客户端之间的实时通信,比如长轮询和永久的iframe,但是选择Websockets背后有特定的原因。

1 个答案:

答案 0 :(得分:1)

这是将数据从PHP发送到Node.js的替代方法:

<?php

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/img.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost:8082/test'); /* Nodejs */
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

更多信息here

在app.js

app.post('/test', function(req, res){
    console.log("name: " + req.body.name);
...

我希望这有用。