所以,我正在尝试在我的私有(private)服务器上运行 Node.js。现在的问题是,我创建了一个聊天程序,当我在本地网络上运行它时,它运行得很好。
现在,当我将 IP 更改为公共(public) IP 时,它不会加载 /socket.io/socket.io.js
文件。它说net::ERR_CONNECTION_TIMED_OUT
我要连接的代码部分是:
服务器.js:
var mongo = require('mongodb').MongoClient,
client = require('socket.io').listen(8080).sockets;
console.log('info - socket.io started');
mongo.connect('mongodb://127.0.0.1/chat', function(err, db) {
if(err) throw err;
索引.html:
<script src="http://94.211.125.196:8080/socket.io/socket.io.js"></script>
<script>
// Try connection
try {
var socket = io.connect('http://94.211.125.196:8080');
} catch(e) {
// Set status to warn user
}
</script>
我确实将所需的端口转发到我的服务器(8080
和 27017
)
最佳答案
您没有托管 socket.io.js
文件。您需要从其他地方包含 js 文件,或者通过在 Node 脚本中启动 httpServer 来托管它。尝试使用socket.io cdn:
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
关于javascript - 使用公共(public)IP运行/socket.io/socket.io.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31370863/