我正在尝试与Ionic2和Angular 2构建一个混合应用。首先运行应用程序时,我有错误
SecurityError:操作是不安全的。
所以我将 ws
更改为 ion-dev.js file
wss
this.socket = new WebSocket('ws://' + window.location.hostname + ':' + IonicDevServerConfig.wsPort);
现在我遇到了错误
Firefox无法在WSS://...
建立与服务器的连接
我也有类似的问题(heroku,前端的角,node.js web套接字服务器)
最近对我有用的是:oninit
this.http.get(this.portURL)
.toPromise()
.then((res: any) => {
const json = res.json();
this.port = json.port;
console.log(`port ${this.port}`);
this.url = location.origin.replace(/^http/, 'ws');
if (location.origin.includes('localhost')) {
this.url = this.url.replace('4200', '5000');
} else {
this.url = this.url.replace('4200', this.port.toString());
}
this.initWebSocketConnection();
console.log(`url ${this.url}`);
})
.catch((reason) => {
console.log(reason);
});
in node.js
const express = require('express');
const socketIO = require('socket.io');
const port = process.env.PORT || 5000;
...
const server = express().get('/port', (req, res) => {
res.json({port: port})
})
.listen(port, () => {
console.log(`Listening on ${port}`)
});
...
const io = socketIO(server);
io.on(// io staff here ... )
通过这种方式,我设法在本地和本地运行Node.js应用程序。我的文件结构就是这样:root项目是一个简单的node.js-express应用,其中一个有一个视图文件夹,其中包含Angular App。