代码:
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/(那应该被关闭)?
您必须逐一查看可能出现的问题列表,以缩小问题范围。