使用express和socket.io节点js – 找不到socket.io.js

我正在使用socket.io处理js应用程序。 我看了一些关于这个问题的答案,但他们不能帮助我解决问题。 我得到的错误是

Failed to load resource: the server responded with a status of 404 (Not Found) localhost/:10 Uncaught ReferenceError: io is not defined 

这是我的目录结构:

 Judgement |----node_modules |----|----express |----|----socket.io |----public |----|----css |----|----|----judgementMain.css |----|----js |----|----|----form.js |----|----index.html |----server.js |----package.json 

在我的index.html页面中,我有以下的链接到socket.io.js

  <script type="text/javascript" src="socket.io/socket.io.js"></script> <script type="text/javascript"> var socket = io(); </script> <script type="text/javascript" src="js/form.js"></script> 

server.js的内容如下

 var express = require('express'); var app = express(); var path = require('path'); // Define the port to run on app.set('port', 3000); app.use(express.static(path.join(__dirname, 'public'))); // Listen for requests var server = app.listen(app.get('port'), function() { var port = server.address().port; console.log('Magic happens on port ' + port); }); var http = require('http').Server(app); var io = require('socket.io')(http); io.on('connection', function (socket) { console.log('A user connected'); socket.on('disconnect', function() { console.log('A user disconnected'); }); }); 

有人可以解释我做错了什么? 我只是刚刚开始使用节点js和express和socket.io,所以任何帮助表示赞赏。

谢谢

我看到一些问题:

首先,在你的HTML中,它应该是带有斜杠的src="/socket.io/socket.io.js"

其次,你正在创build两个http服务器,但实际上只是启动其中一个,当你应该只使用一个。 你的socket.io的东西不工作,因为你给它一个你从未开始的http服务器。

更改到这里你给socket.ioexpression正在使用的,已经在你想要的端口上启动的http服务器:

 var express = require('express'); var app = express(); var path = require('path'); // Define the port to run on app.set('port', 3000); app.use(express.static(path.join(__dirname, 'public'))); // Listen for requests var server = app.listen(app.get('port'), function() { var port = server.address().port; console.log('Magic happens on port ' + port); }); var io = require('socket.io')(server); io.on('connection', function (socket) { console.log('A user connected'); socket.on('disconnect', function() { console.log('A user disconnected'); }); });