我正在开发一个使用node.js,socket.io和express的多用户,类似于游戏的交互式集体行为实验。该网站是: http://pcl.cogs.indiana.edu:8080/ 当我在大学,服务器所在的同一所大学时,或者在我第一次进入大学以外的其他VPN时,该站点都可以正常工作,并且我立即进入了实验。当我不在上大学并且不使用VPN时,通常Chrome会旋转一段时间,然后最终显示错误消息:
无法访问此网站 pcl.cogs.indiana.edu花费了太多时间才做出回应。
ERR_CONNECTION_TIMED_OUT
当我离开大学并且不使用VPN时,该站点有时仍可以工作,这可能取决于客户端网络的设置方式?我该如何解决问题所在?也就是说,如何确定问题出在我的大学的客户端或服务器端的网络设置?有没有一种方法可以检查一些告诉我哪些客户端试图访问服务器但被拒绝的日志?最实用的是,我应该在服务器代码或服务器设置中查看什么样的修复程序,这些修复程序将允许所有远程客户端参与实验?为了方便起见,我附上了我的app.js代码的开头:
var express = require('express');
var fs = require("fs");
var app = express();
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.sendFile(__dirname + '/public/index.html');
});
app.set('view engine', 'pug');
const server = require('http').Server(app);
const io = require('socket.io')(server);
if (module === require.main) {
const PORT = process.env.PORT || 8080;
server.listen(PORT, () => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
}