gpt4 book ai didi

node.js - Node js 与express 和socket.io - 找不到socket.io.js

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:15 25 4
gpt4 key购买 nike

我正在使用 socket.io 开发一个 Node.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');
});
});

有人可以解释一下我做错了什么吗?我刚刚开始使用 Node js、express 和 socket.io,因此非常感谢您的帮助。

谢谢

最佳答案

我看到几个问题:

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

其次,您正在创建两个 http 服务器,但实际上只启动了其中一个,而您应该只使用一个。你的socket.io东西不起作用,因为你给它一个你从未启动过的http服务器。

更改为您向 socket.io 提供 Express 正在使用且已在您所需的端口上启动的 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');
});
});

关于node.js - Node js 与express 和socket.io - 找不到socket.io.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com