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

我正在用node.js,socket.io和cordova构build一个testing聊天应用程序客户端。 执行cordova run browser器打开http:// localhost:8000 。 在我的cordova聊天客户端应用程序的index.js我有代码连接到我的服务器端socket.io:

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

问题是我收到这样的错误:

在这里输入图像描述

所以你可以看到有一个端口(8000)添加到链接。 当我在Android设备上运行应用程序(cordova run android)时,这个问题不会发生。

为什么cordova将外部链接添加到端口? 可以禁用端口添加到cordova运行浏览器的外部链接

这不是cordova添加端口到您的URL,它是socket.io客户端, 在这里 :

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

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

为了避免它,你应该添加端口URL或opt对象。