【发布时间】:2015-02-08 05:11:43
【问题描述】:
我正在使用带有 Express 的 Socket.io。在我的项目中,我有一个登录页面和一个主页。当我成功登录时,我导航到 localhost:3000/home 并出现此错误:
GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=1418187395022-0 404 (Not Found)
我没有对我的app.js(由 express 创建的项目)进行任何修改。
index.js:
var express = require('express');
var router = express.Router();
var http = require('http');
var fs = require('fs');
var io = require('socket.io')(http);
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
router.get('/home', function(req, res) {
res.render('home', { title: 'Express' });
});
io.on('connection', function(socket){
console.log("User Connected");
socket.on('chat message', function(msg){
io.emit('chat message', msg);
console.log("Message");
});
socket.on('disconnect', function(msg){
console.log("User DisConnected");
});
});
router.post('/authenticate', function(req, res) {
fs.readFile("./public/Verification/Users.json", "utf8", function (err, data) {
if (err)
console.log(err);
else{
var result = JSON.parse(data);
for(var i=0;i<result.Users.length;i++){
if(req.body.username == result.Users[i].username && req.body.password == result.Users[i].password){
console.log("Success!!!!!!!!!!!!!!");
res.location("home");
res.redirect("home");
}
}
}
});
});
module.exports = router;
在我的layout.jade 中,我这样定义了 Socket.io:
script(src='https://cdn.socket.io/socket.io-1.2.0.js')
【问题讨论】:
-
您的 express 服务器在哪里配置为侦听端口 3000?我在任何地方都没有看到那部分?而且,它需要在你连接 io 服务器端之前。
-
默认监听3000,我什么都没配置。
-
据我所知,端口 3000 上没有默认值。如果 localhost:3000/home 产生错误,那么您的 Web 服务器在端口 3000 上没有正常工作。您运行的是哪个版本的 Express?