【发布时间】:2016-06-29 05:27:22
【问题描述】:
我正在使用 socket.io 开发一个节点 js 应用程序。我查看了一些关于 SO 的答案,但他们无法帮助我解决我的问题。我得到的错误是
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');
});
});
有人可以解释我做错了什么吗?我只是刚开始使用 node js 和 express 和 socket.io,所以非常感谢任何帮助。
谢谢
【问题讨论】:
-
如果您在
window.loaded事件中调用io(),它可以正常工作吗? -
@pay - 没有理由等待窗口加载以使用
io()。 Socket.io 与 DOM 无关,因此没有理由在使用之前等待 DOM 加载。