无法加载资源socket.io

我想在我的node.js应用程序中使用socket.io,但我的客户端无法从我的服务器获取库,我不知道为什么。

错误:加载资源失败:服务器以404(未find)的http:// localhost:3000 / socket.io / socket.io.js状态响应服务器站点:

var express = require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); app.use(express.static('public')); app.get('/', function (req, res) { res.sendFile( __dirname + "/" + "index.html" ); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); }); io.on('connection', function(socket){ console.log('a user connected'); }); 

客户端:

 <head> <link rel="stylesheet" href="/stylesheets/style.css" /> <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); </script> </head> 

您的index.html代码找不到socket.io,因为您只是索引index.html作为响应。 请尝试下面的代码。

使用以下代码:

 //"client" is folder for client code which contains index.html app.use(express.static(__dirname + '/client')); 

删除以下代码。 Node.js会自动findindex.html。

  app.get('/', function (req, res) { res.sendFile( __dirname + "/" + "index.html" ); }); 

更改您的index.html新代码:

 <script src="https://cdn.socket.io/socket.io-1.3.7.js"></script> 

旧代码:

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

我不知道为什么你的代码不工作,但是如果socket.io安装正确,那么它会自动configurationExpress中的路由来为/socket.io/socket.io.js请求服务。 所以,显然socket.io没有正确configuration/安装在你的情况。

我可以告诉你,这个Express和socket.io的初始化工作,并没有你说的问题:

 var express = require('express'); var app = express(); var server = app.listen(80); var io = require('socket.io')(server);