将socket.io集成到现有的php应用程序中

时间:2014-02-11 21:28:32

标签: socket.io http-status-code-404

我有一个启动并运行的php项目,它使用websockets,但只是以广播的方式.Recenly(好吧......几个小时前)我开始尝试使用node.js,我喜欢它到目前为止。我想在我的项目中使用socket.io的'rooms'功能。这是我到目前为止尝试过的基本代码片段:(test.js)。

var app = require('http').createServer()
, io = require('socket.io').listen(app)
, fs = require('fs');
app.listen(1234);
//var io = require('socket.io').listen(1234);
console.log('IO Server running');
//***Redis client***
var redis = require('redis');
client = redis.createClient();
client2 = redis.createClient();
channel = process.env.CHANNELL  || 'chatroom';
client.on('error', function(err){
      console.log("Error ;" + err);
      });
client.on('message', function(channel, message){
      console.log(message);
      });
client.on('subscribe', function(channel){
                 console.log('Client has subscribed');
      });

//***Event listeners***
//***onopen***
io.on('connection', function(socket){
   socket.emit('message', {'message': 'hello world'});
   console.log('New Connection accepted');
   client.subscribe(channel);
   });
   //***onmessage***

   //***onclose***

我知道上面的代码看起来多么荒谬和天真,但是,这只是几个小时...... (test.html)--->从Apache,来自XAMPP项目目录

<html>
<head>
 <script type="text/javascript" src="js/jquery.min.js"></script>
 <script type="text/javascript" src="http://localhost:1234/socket.io/socket.io.js"></script>           
 <script type="text/javascript">
 var socket = io.connect();
 </script>
</head>
<title>Primitive websocket in node.js</title>

服务器在控制台中尽职尽责地启动:

info -socket.io started.

然而,在客户端,错误出现错误:

GET http://localhost/socket.io/1/?t=1392148871226 404 (Not Found) socket.io.js:1659

我已经在线阅读了有关此特定错误的可用文献,但似乎没有任何帮助。看来我的test.js服务器也必须提供test.html(或与不同端口有关)。否则404错误.Is有可能,我想在这做什么? 如何使错误消失? 任何建议/帮助将不胜感激。我的问题或多或少像this question

1 个答案:

答案 0 :(得分:0)

创建目录&#39; /socket.io'在主目录中。找到&#39; socket.io.js&#39;安装了socket.io模块的文件并将其放在&#39; /socket.io'中。 将相关代码更改为:

<script src="socket.io/socket.io.js"></script>

我有类似的问题。但改变之后它就有效了。现在我可以在这里看到另一个问题:Integrating node.js, socket.io and php web page