Назад | Перейти на главную страницу

NodeJS | http | Не работает в локальной сети

Код:

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% на localhost. Но не работает ни на одном другом устройстве в локальной сети. Не могли бы вы мне помочь? РЕДАКТИРОВАТЬ: он даже не загружает сайт на другое устройство в локальной сети.

Трудно сказать наверняка, что не так, но вот что нужно проверить:

  • вы используете правильный IP-адрес?
  • Можете ли вы пропинговать себя, используя этот адрес, со своего компьютера?
  • Вы можете пропинговать себя, используя этот адрес, с других компьютеров в локальной сети?
  • у вас есть брандмауэр, блокирующий сетевые запросы? вам нужно, чтобы порт 3000 был открыт
  • вы получаете ту же ошибку, когда пытаетесь получить доступ http: // ВАШ-IP: 3000 / с вашего собственного компьютера и с других компьютеров в локальной сети?
  • вы получаете ту же ошибку, когда пытаетесь получить доступ http: // ВАШ-IP: 3000 / (это должно быть открыто) и, например, http: // ВАШ-IP: 4000 / (что должно быть закрыто)?

Вам нужно просмотреть список возможных проблем один за другим, чтобы сузить проблему.