NodeJS | http | 在 LAN 上不起作用

NodeJS | http | 在 LAN 上不起作用

代码:

var express = require('express');
var connect = require('connect');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var path = require('path');

server.listen(3000, "0.0.0.0");

app.all('*', function(req, res) {
    if(req.originalUrl.slice(-3) == "css" || req.originalUrl.slice(-4) == "html" || 
        req.originalUrl.slice(-2) == "js" || req.originalUrl.slice(-3) == "png" || 
        req.originalUrl.slice(-3) == "jpg" || req.originalUrl.slice(-4) == "jpeg" || req.originalUrl.slice(-3) == "gif") {
        res.sendFile(__dirname + req.originalUrl);
    } else {
        res.sendFile(__dirname + req.originalUrl + "/index.html");
    }
});

io.sockets.on('connection', function(socket) {
    socket.on('sendMsg', function(data) {
        io.sockets.emit('newMsg', data);
    });

    socket.on('login', function(data) {
        if(data == "root") {
            socket.emit('authStatus', "Good nick");
        } else {
            socket.emit('authStatus', "Wrong nick");
        }
    });
});

在本地主机上 100% 可用。但在 LAN 上的其他设备上都无法使用。你能帮我吗?编辑:它甚至无法在 LAN 上的其他设备上加载网站。

答案1

很难确切地说出什么问题,但需要检查以下几点:

  • 您是否使用了正确的 IP 地址?
  • 你能从自己的计算机上使用该地址 ping 自己吗?
  • 您可以使用 LAN 上的其他计算机的该地址 ping 自己吗?
  • 您是否有任何防火墙阻止网络请求?您需要打开端口 3000
  • 当你尝试访问时是否遇到了同样的错误http://你的IP:3000/从您自己的计算机和 LAN 上的其他计算机?
  • 当你尝试访问时是否遇到了同样的错误http://你的IP:3000/(应该是开放的)例如http://你的IP:4000/(那应该被关闭)?

您必须逐一查看可能出现的问题列表,以缩小问题范围。

相关内容