无法加载资源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);