我正在为Windows 10构建一个Ionic 2应用程序,需要与运行在localhost上的服务器进行通信。
如果我在浏览器中运行我的应用程序(使用ionic serve
或ionic run browser
),一切正常,但如果我使用ionic run windows
启动应用程序,则App和LocalServer之间的通信无效我无法收到任何错误消息(应用程序的其余部分工作正常)。
在服务器在另一台设备上运行(不使用localhost)的情况下,一切都运行正常......问题是我需要让App和服务器在同一设备上运行,任何有关hapening的提示以及如何解决这个问题?
如果事情不够明确,请告诉我。提前谢谢!
服务器:
var io = require('socket.io')();
io.on('connection', function(client){
console.log('Connected...');
client.on('message', function(data){
console.log('message: ' + data);
});
client.on('disconnect', function() { console.log('Disconnected...'); });
});
io.listen(3300);
客户端方法(Ionic 2 App):
connect() {
console.log('Connect...');
this.socket = io.connect('http://127.0.0.1:3300');
}
disconnect() {
console.log('Disconnect...');
this.socket.disconnect();
}
send() {
console.log('Send...');
this.socket.emit('message', 'test message...');
}
修改
另一种可能有助于描述问题的奇怪行为:
如果我启动服务器和应用程序并调用connect方法(来自客户端)服务器中没有任何反应...但只需重新启动服务器我就能看到console.log('Connected...');
的结果。由于客户端配置为在连接丢失后自动重新连接,因此可能由于此重新连接请求而执行console.log('Connected...');
。
这意味着,在某种程度上,Ionic App客户端能够到达服务器,尽管我无法弄清楚为什么在重新启动服务器后才会发生这种情况。即使之后我无法进行实时通信,问题也是一样的,我只能在服务器重启后才能获得一些活动。