我在react-node项目中使用socket.io。我在页面刷新时套接字没有刷新有问题。
它首先作为服务器运行,而react dev服务器则首次运行。使用套接字(从服务器发出内容)后,刷新浏览器页面将导致Web socket.js文件错误:
WebSocket连接到 'ws:// localhost:4000 / socket.io /?EIO = 3&transport = websocket&sid = XTE63CeWdp676cRXAAAF' 失败:WebSocket握手期间出错:意外的响应代码: 400
这是我在客户端和服务器中使用的代码:
服务器:
.gitignore
启动服务器时将调用const express = require('express');
const socketconfig = require('./socket.io');
class Server {
constructor({ config, router, logger, }) {
this.config = config;
this.logger = logger;
this.express = express();
this.express.disable('x-powered-by');
this.express.use(router);
}
start() {
return new Promise((resolve) => {
const http = this.express
.listen(this.config.web.port, () => {
const { port } = http.address();
this.logger.info(`[p ${process.pid}] Listening at port ${port}`);
resolve();
});
var io = require('socket.io').listen(http,function () {
console.log("I AM CONNECTIONG")
});
this.freshio=io.sockets;
socketconfig.setOnConnection(this.freshio, ()=>{
console.log('Connexion COnditions are set');
});
socketconfig.setOnDisconnect(this.freshio, ()=>{
console.log('client disconnected');
});
this.clients = socketconfig.clients;
});
}
}
module.exports = Server;
方法。
start()
文件只是用于保存客户端和设置条件的工具包,它不会干扰任何内容。
客户:
socketConfig
Store只是具有配置文件链接的助焊剂存储。
我尝试添加使用socket.io而不是http方法的webSockets方法,但是由于其他问题激增,它是徒劳的。
我该怎么办?