Node.js Socket.IO自定义路径或命名空间出现问题
经过授权后,用户被重定向到聊天的地址,但是当链接打开时,我在图片中看到一个错误,您可以看到错误 代码app.jsNode.js Socket.IO自定义路径或命名空间出现问题,node.js,socket.io,Node.js,Socket.io,经过授权后,用户被重定向到聊天的地址,但是当链接打开时,我在图片中看到一个错误,您可以看到错误 代码app.js app.use(express.static(path.join(__dirname, 'views'))); app.set("view engine", "hbs"); app.use(bodyParser.urlencoded({extended : false})); app.use(bodyParser.json()); app.use("/", userRoute
app.use(express.static(path.join(__dirname, 'views')));
app.set("view engine", "hbs");
app.use(bodyParser.urlencoded({extended : false}));
app.use(bodyParser.json());
app.use("/", userRouter);
app.use("/signup", signupRouter);
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.path('/home');
var controller = require('./controllers/chatController.js');
io.on('connection', controller.respond );
路由器
const express = require("express");
const userRouter = express.Router();
var homeController = require('../controllers/homeController.js');
userRouter.get("/home", homeController.home);
homeController.js
let user=require("../models/user.js");
exports.home = function(request, response) {
let data=[request.session.username, request.session.username];
if (request.session.loggedin) {
user.getUser(data).then(function(item){
response.render("index.hbs", {user:item[0]});
});
} else {
response.send('Please login to view this page!');
}
};
我使用把手和socket.io 2.3.0
我知道这是不是路径的问题?
如何解决此问题?您希望通过使用自定义socket.io路径实现什么?如果您确实配置了自定义socket.io路径,则必须:1)使其与您将使用的任何页面URL不同且唯一;2)在服务器和客户端socket.io中配置相同的路径;3)调整从网页中加载客户端库的路径。换句话说,不要使用与网页相同的socket.io路径。所以,使用这个
userRouter.get(“/home”,homeController.home)代码>和io.path('/home')代码>将给您带来问题。socket.io路径应该对用户不可见,并且应该与其他URL中使用的任何内容都是唯一的。通常根本没有理由修改它。socket.io库所做的是为它使用的任何路径安装侦听器,并将该路径用于它自己的目的。只需删除所有自定义socket.io路径,一切都会好起来。谢谢,我删除了自定义路径,但我有错误。之后,我在文件应用程序中发现错误。这是否意味着它连接良好,然后您遇到了其他一些但不相关的错误?