Javascript socket.io无法与静态文件路由节点.js一起使用
我正在写一个聊天应用程序。在这种情况下,当静态文件路由工作时,socket.io(Chat)不工作会在控制台中抛出not found错误 404找不到 当聊天正常时,公共静态文件不工作会抛出错误 无法获取/public/index.html 代码聊天正在工作(公共静态文件不工作):Javascript socket.io无法与静态文件路由节点.js一起使用,javascript,node.js,sockets,express,Javascript,Node.js,Sockets,Express,我正在写一个聊天应用程序。在这种情况下,当静态文件路由工作时,socket.io(Chat)不工作会在控制台中抛出not found错误 404找不到 当聊天正常时,公共静态文件不工作会抛出错误 无法获取/public/index.html 代码聊天正在工作(公共静态文件不工作): var app=require('express')(); var http=require('http').Server(app); var io=require('socket.io')(http); var p
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var path=require('path');
//Initialize application with route
app.get('/',function (req,res) {
var express=require('express');
app.use(express.static(path.join(__dirname+'/public')));
res.sendFile(path.join(__dirname,'../public','chat.html'));
});
//Register events on socket connection
io.on('connection',function (socket) {
socket.on('chatMessage',function (from, msg) {
io.emit('chatMessage',from,msg);
});
socket.on('notifyUser',function (user) {
io.emit('notifyUser',user);
});
});
// Listen appliaction request on port 80
http.listen(80,function () {
console.log('Server Running in port 80');
});
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var path=require('path');
//Initialize application with route
var express=require('express');
app.use(express.static('public/'));
app.use('/public',express.static('public/stack'));
//Register events on socket connection
io.on('connection',function (socket) {
socket.on('chatMessage',function (from, msg) {
io.emit('chatMessage',from,msg);
});
socket.on('notifyUser',function (user) {
io.emit('notifyUser',user);
});
});
app.get('*', function(req, res){
res.send('what???', 404);
});
// Listen appliaction request on port 80
app.listen(80,function () {
console.log('Server Running in port 80');
}
代码公共静态文件工作(聊天室不工作):
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var path=require('path');
//Initialize application with route
app.get('/',function (req,res) {
var express=require('express');
app.use(express.static(path.join(__dirname+'/public')));
res.sendFile(path.join(__dirname,'../public','chat.html'));
});
//Register events on socket connection
io.on('connection',function (socket) {
socket.on('chatMessage',function (from, msg) {
io.emit('chatMessage',from,msg);
});
socket.on('notifyUser',function (user) {
io.emit('notifyUser',user);
});
});
// Listen appliaction request on port 80
http.listen(80,function () {
console.log('Server Running in port 80');
});
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var path=require('path');
//Initialize application with route
var express=require('express');
app.use(express.static('public/'));
app.use('/public',express.static('public/stack'));
//Register events on socket connection
io.on('connection',function (socket) {
socket.on('chatMessage',function (from, msg) {
io.emit('chatMessage',from,msg);
});
socket.on('notifyUser',function (user) {
io.emit('notifyUser',user);
});
});
app.get('*', function(req, res){
res.send('what???', 404);
});
// Listen appliaction request on port 80
app.listen(80,function () {
console.log('Server Running in port 80');
}
好的,这个代码有效
var express=require('express');
var app = express();
var path=require('path');
var server = require('http').createServer(app);
var io=require('socket.io')(server);
//Initialize application with route
app.use(express.static('public/'));
// app.use('/public',express.static('public/stack'));
//Register events on socket connection
io.on('connection',function (socket) {
socket.on('chatMessage',function (from, msg) {
io.emit('chatMessage',from,msg);
});
socket.on('notifyUser',function (user) {
io.emit('notifyUser',user);
});
});
app.get('/', function(req, res){
res.send('what???', 404);
});
// Listen appliaction request on port 80
server.listen(80,function () {
console.log('Server Running in port 80');
});
将您的chat.html
移动到侧公共文件夹中,然后像
目录结构类似于
appdir
public/client.html
server.js
node server.js
我无法重现错误。我的端口80正忙着使用nginx,所以我将它设置为8000,聊天也可以使用statichttp://localhost/socket.io/?EIO=3&transport=polling&t=1486743833778-61 404(未找到)no它不工作404
是因为您的通配符路由app.get('*',…res.send('what?',404)
我甚至对该路由进行了评论。不起作用。在网络面板中,它给出了无法获取/socket.io/?EIO=3&transport=polling&t=1486744187480-26
@SasiVarunan相同的错误。它工作得很好。我想知道如何使用socket函数而不是server.js文件。因为我想将这些msg存储到数据库中。如果我写这些函数ns这里的server.js文件看起来很凌乱。然后你需要在单独的js文件中编写所有函数并进行导出。然后在server.js文件中你需要它。它值得阅读和理解exports和module.exports
并深入到你的项目中