Cordova 将端口添加到 cordova 运行 浏览器上的外部链接

Cordova adding port to external links on cordova run browser

我正在使用 node.js、socket.io 和 cordova 构建一个测试聊天应用客户端。 执行 cordova run browser 浏览器打开 http://localhost:8000。 在我的 cordova 聊天客户端应用程序的 index.js 中,我获得了连接到服务器端的代码 socket.io:

var socket = io.connect('https://node-socket.io-address/');
socket.on('connect', function() {.............

问题是我收到这种错误:

如您所见,link 添加了一个端口 (8000)。当我在 android 设备 (cordova 运行 android) 上 运行 应用程序时,不会出现此问题。

为什么 cordova 正在向外部 links 添加端口? 可以在 cordova [=] 上禁用向外部 links 添加的端口36=] 浏览器 ?

这不是 cordova 向您的 URL 添加端口,而是 socket.io 客户端,here:

  this.port = opts.port || (global.location && location.port ?
       location.port :
       (this.secure ? 443 : 80));

未定义端口时,默认为应用程序端口。这可能是 socket.io 中的一个错误,因为只有当网页和服务器由同一节点托管时才有意义。您的问题源于这样一个事实,即为您的应用程序提供服务的是 cordova(在 localhost:8000 上)并且 socket.io 假设 websocket 将在同一端口上。

为避免它,您应该将端口添加到 URL 或 options 对象。