【发布时间】:2014-02-07 08:06:07
【问题描述】:
我正在尝试为现有 PHP 项目构建 node.js 聊天功能。我正在使用 node.js socket.io。 Node.js 正在监听端口 3000。现在的问题是当我尝试访问聊天 PHP 页面 http://www.example.com:3000/app/chat.php 时,该页面被下载而不是被提供。我知道 node.js 不提供 PHP 页面,但是有什么解决方法可以解决这个问题?
Node.js
var app = require('express')(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
httpProxy = require('http-proxy');
server.listen(3000);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.php');
});
io.sockets.on('connection', function(socket) {
socket.on('send data',function (data) {
io.sockets.emit('latest data',data);
});
});
PHP
<?php
// Blah Blah
<script>
jQuery(function($))
{
var socket = io.connect();
var $editArea = $('#editAreaID');
$editArea.keydown(function(){
socket.emit('send data', $editArea.val());
});
socket.on('latest data', function(data){
$editArea.val(data);
});
}
</script>
// Blah Blah
?>
【问题讨论】:
-
请把代码贴出来
-
Apache 不是在
www.example.com/app/chat.php上运行吗?如果您使用 node 进行聊天,为什么还需要 PHP? -
服务器端 -> pastebin.com/DQR7jP8P 客户端 -> pastebin.com/icigaBgk
-
Apache 正在运行 www.example.com/app/chat.php 但由于 nodejs 和 apache 都在服务器上运行,所以我让 nodejs 监听不同的端口,即 3000。
-
所以你想让两台服务器在同一个端口上?这没有多大意义。为什么?
标签: php node.js apache socket.io