[英]socket.io.js not found
由于某种原因,我的节点服务器无法为路由/socket.io/socket.io.js
提供服务,我总是收到 404 错误。
我尝试编译不同的节点版本(当前是 0.6.13,它也在服务器上运行,它实际工作的地方)。
从 app.js 我得到info: socket.io started
并且在尝试调用 socket.io.js 时没有错误。
我从本地主机和端口 8000 尝试,我使用 express 框架
这是来自 app.js 的代码:
var express = require('express')
, app = require('express').createServer()
, io = require('socket.io').listen(app, { log: true });
app.listen(8000);
app.configure(function() {
app.use(express.static(__dirname + '/public'));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
io.sockets.on('connection', function (socket) {
// all other stuff here
请检查您的Express版本。 Express最近更新为3.0alpha,API已更改。 如果是3.0,您可以将代码更改为以下内容:
var express = require('express')
, http = require('http');
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);
...
server.listen(8000);
与connect相同的问题: https : //github.com/senchalabs/connect/issues/500#issuecomment-4620773
使用Express 3 Web框架 :( 来自socket.io )
> Express 3要求您实例化一个http.Server
以将socket.io连接到第一个:
含义 - (1)您必须创建一个服务器实例:
var app = express();
var http = require('http').createServer(app);
(2)将它与socket.io联系起来:
var io = require('socket.io');
io.listen(http);
然后只有 - (3)让服务器听:
http.listen(8080);
确保你保持这个订单!
安装节点0.8.1后我遇到了同样的问题。 我刚删除了项目文件夹中的node_modules映射并重新安装了express / socket.io。 之后,它再次使用您的问题中的代码。
也许这可以帮助你,在我的Ubuntu 11.10上我没有正确设置NODE_PATH
变量,如果你在linux / mac上尝试在下面添加你的.bashrc / .zshrc文件。
export NODE_PATH=/usr/lib/node_modules:$NODE_PATH
在您的存储库中安装Socket.io:
npm install socket.io --save
之后,配置服务器:
var express = require('express')
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
server.listen(app.get('80')); // not 'app.listen'
在您的存档HTML/EJS
或其他您想要的内容中,添加:
<script src="/socket.io/socket.io.js"></script>
检查是否适用于Console
(Chrome / Mozilla等)。
在我的示例中,我使用Chrome(Ctrl + shift + I):
默认端口 3000 对我不起作用,即使它没有被使用。 它因/socket.io/socket.io.js
的 404 错误而失败(没有其他通知或解释)。 尝试使用您确定未使用的其他端口,它可能适合您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.