我正在尝试将socket.io与Svelte一起使用,最近我开始尝试使用它,这是按照https://svelte.dev/上的说明安装的原始形式。
无论我尝试什么组合,我都无法理解为什么会出现“bundle.js:4497 GET http:// localhost:5000 / socket.io /?EIO = 3& transport = polling& t = N72840H 404(未找到)”错误。在之前的“基本”Node.js服务器上,相关代码如下:
为什么要使用
在前端(在
这与
如果我的帖子缺少细节或信息,请在评论中指出,我将编辑它以提供所需的详细信息。谢谢!
无论我尝试什么组合,我都无法理解为什么会出现“bundle.js:4497 GET http:// localhost:5000 / socket.io /?EIO = 3& transport = polling& t = N72840H 404(未找到)”错误。在之前的“基本”Node.js服务器上,相关代码如下:
const express = require('express');
const app = express();
const server = http.createServer(app)
const io = require('socket.io')(server,{
transports: ['websockets', 'polling'],
upgrade:false,
cookie:false
});
const sockets = require('./models/socket')(io)
我尝试了许多不同的组合,包括上述各种建议和替代方案,例如:
require('http').Server(app)
为什么要使用
.Server()
而不是.createServer()
?没有人解释过。我已经尝试了app
、express
、server或app.listen
等多种方法,有些教程/文章中包含这些内容,有些则不包含-我不知道其中是否有任何先决条件。许多示例都有localhost
,也有许多没有。有时冒号后面带有数字,有时没有。在前端(在
.svelte
文件中),尝试使用import io from 'socket.io-client'
,在index.html文件中使用cdn,在head中使用<script src="../socket.io/socket.io.js"></script>
(没有点、1个点、没有斜杠等)。最后一个不同之处在于在尝试连接io()
之前找不到它,这就是持久错误生成的地方。
io()
有时被建议作为io.connect()
、io.connect('localhost')
或io.connect('localhost:3000 or 8080 or some other)
。天晓得为什么。这与
Rollup.js
打包工具的工作方式有关吗?我已经四处查找,但没有任何有用的线索。如果我的帖子缺少细节或信息,请在评论中指出,我将编辑它以提供所需的详细信息。谢谢!
server.listen()
时使用的是哪个端口? - joshnuss