javascript - node.js - 使用 socket.io 在公共(public) IP 上托管服务器

标签 javascript node.js express networking socket.io

考虑服务器代码:

express = require('express');
app = express();
app.use('/', express.static(__dirname + '/'));
http = require('http').Server(app);
io = require('socket.io')(http);
...
http.listen(80);

我也尝试过http.listen(80, "::")

客户端代码:

socket = io();

输入 http://[#PUBLIC_IPv6_OF_SERVER]:3000 时,这会导致以下控制台错误在浏览器中:

ERR_NAME_NOT_RESOLVED

如何成功地让客户端通过其公共(public) IPv6 地址连接到服务器?

最佳答案

您需要在服务器端允许跨源请求。

var domains = "http://localhost:*";
io = require('socket.io')(http, {origins:domains}); 

关于javascript - node.js - 使用 socket.io 在公共(public) IP 上托管服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38133200/

相关文章:

node.js - NPM 7 工作区 - 如何在工作区中安装新包?

linux - 在 Openshift 上将 nodejs gear 升级到 v0.12 后出现 bcrypt 错误

node.js - 什么是 nodejs express 管理多个域?

node.js - 如何在运行express js服务器时使用forever

javascript - 在 for 循环中从数组中删除项目

javascript - 使用 JSDom 设置 location.hash 和 location.href

javascript - 是否可以让其他 javascript 事件监听器等待异步事件?

javascript - 使用后退按钮时,Rails 3.1 返回原始 Javascript 代码

node.js - 什么使字符串/ token 在密码学上是安全的?

node.js - 在 Node API 中一定时间后刷新 Oauth token