Javascript 初始化将要发送的节点文件中的客户端套接字

Javascript 初始化将要发送的节点文件中的客户端套接字,javascript,node.js,web,websocket,socket.io,Javascript,Node.js,Web,Websocket,Socket.io,我从nodejs服务器向客户端发送信息,如下所示: app.get([…] 让index=wait readFileAsync(path.join(uu dirname,'file.js'),'utf8'); res.send(索引); ) 我想在file.js中初始化一个套接字 在socket io文档中,您可以执行以下操作: var socket=io(); 因此,我尝试直接在我的文件.js中复制/粘贴socket.io.js,并添加var socket=io()在最后,但是我在我的客

我从nodejs服务器向客户端发送信息,如下所示:

app.get([…]
让index=wait readFileAsync(path.join(uu dirname,'file.js'),'utf8');
res.send(索引);
)
我想在file.js中初始化一个套接字

在socket io文档中,您可以执行以下操作:


var socket=io();
因此,我尝试直接在我的
文件.js
中复制/粘贴
socket.io.js
,并添加
var socket=io()在最后,但是我在我的客户机上遇到了这个错误:
GEThttp://127.0.0.1:5500/socket.io/?EIO=4&transport=polling&t=NXz6N1S 404(未找到)

有没有一种方法可以在file.js中初始化我的客户端套接字

编辑:

my server.js文件:

const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
var path = require('path');
const axios = require('axios');
const fs = require('fs');
var util = require('util');

[...]

io.on('connection', (socket) => {
    console.log('a user connected');
  });

[...]

app.get('/test', async (req, res) => {
    let index = await readFileAsync(path.join(__dirname, 'file.js'), 'utf8');
    res.send(index);
});

const port = process.env.PORT || 8000;
http.listen(port, () => {
    console.log(`ok = ${port}`);
});

它起作用了!您已经成功地将
socket.io.js
移动到您自己的js文件中,并告诉它在最后进行连接

但是,连接尝试失败,因为在socket.io后端使用的路径上没有任何内容正在侦听。最可能的原因是你错过了:

const io=require('socket.io')(http);
否则,socket.io将无法建立连接,因为服务器不接受客户端的请求。启用服务器端处理,整个过程应该开始工作


但是,请注意,从长远来看,这很可能不是一个好主意-socket.io文档建议的标准方法是使用服务器默认情况下在
GET/socket.io/socket.io.js
下公开的捆绑
socket.io.js
文件,因为这是确保代码版本兼容的最简单方法。如果您只是将
socket.io client
的源代码复制到您自己的文件中,然后在某个时间(几个月)有人决定更新服务器端socket.io版本,则应用程序可能会中断,因为客户端未更新。

我的服务器中已经有以下行:
const http=require('http').createServer(app);const io=require('socket.io')(http)@SamuelRodriguez-Lozano,后端是吗?不,我的服务器运行在8000端口!5500端口是用于my index.html客户端测试的vscode服务器,它在内部调用
it@SamuelRodriguez-Lozano:好了,您需要将客户端指向服务器;它不知道自己应该使用:8000。即使从:8000加载脚本,socket.io也不知道从何处加载脚本,因为它在浏览器窗口的全局上下文中执行。请参阅:-在此处指定后端。