javascript - 使用公共(public)IP运行/socket.io/socket.io.js

标签 javascript html node.js

所以,我正在尝试在我的私有(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>

我确实将所需的端口转发到我的服务器(808027017)

最佳答案

您没有托管 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/

相关文章:

javascript - 数组中的 div 距窗口顶部的距离

node.js - 如何使用node-orm2编写OR条件?

javascript - React.renderComponent 不是函数

html - 在静态页面上水平滚动下拉菜单

python - Django 如何在 Amazon S3 中存储 HTML 文件

node.js - 如何处理 Dockerfile for dev/prod 的差异

javascript - 如何在 Chrome 控制台窗口中开始一个新行?

javascript - JustGage 使用 jquery 刷新

javascript - 将单词与旁边的空格匹配

html - 使用 Angularjs 和 Nodejs 将 HTML 表单另存为 JSON 文件