【发布时间】:2016-05-20 17:48:52
【问题描述】:
我正在使用 node.js、socket.io 和 cordova 构建一个测试聊天应用程序客户端。
执行cordova run browser 浏览器打开http://localhost:8000。
在我的科尔多瓦聊天客户端应用程序的 index.js 中,我得到了连接到服务器端 socket.io 的代码:
var socket = io.connect('https://node-socket.io-address/');
socket.on('connect', function() {.............
问题是我收到这种错误:
如您所见,链接中添加了一个端口 (8000)。当我在 android 设备上运行应用程序(cordova run android)时,不会出现此问题。
为什么 cordova 向外部链接添加端口? 可以在 cordova 运行浏览器上禁用向外部链接添加端口?
【问题讨论】:
-
您是否在 index.html 中正确配置了 CSP(Content-Security-Policy)?
-
实际上我完全删除了它,因为它导致了另一个错误(拒绝连接到资源),但事实并非如此;)。为什么有一个端口添加到放置在 Javascript 中的链接 - 将端口添加到 url 地址的末尾是不正确的
-
您可以简单地添加默认 https 端口:
var socket = io.connect('https://node-socket.io-address:433/');(或其他端口,如果不同) -
你的配置是什么样的?例如app.set('port', process.env.PORT || 8000); process.env.PORT 由您运行代码的环境设置。
-
@stdob-- 是的,我知道这一点 - 但我必须知道我的 heroku 测试服务器正在使用哪个端口(它不是 443,因为 chrome 开发控制台中存在连接超时错误)跨度>
标签: javascript node.js cordova socket.io localhost