Websocket Android Nativescript不会连接到socket.io,IOS会
我遇到了一个非常令人沮丧的错误,试图将android nativescript应用程序与socket.io连接 我已经为ios开发了我的应用程序,并试图将其移植到Android上,但socket.io无法连接,我将问题缩小到了一个简单的hello world,只使用了socket.io插件的模板。它适用于IOS,但不适用于Android。我会犯无声的错误 运行这段代码:Websocket Android Nativescript不会连接到socket.io,IOS会,websocket,socket.io,nativescript,angular2-nativescript,Websocket,Socket.io,Nativescript,Angular2 Nativescript,我遇到了一个非常令人沮丧的错误,试图将android nativescript应用程序与socket.io连接 我已经为ios开发了我的应用程序,并试图将其移植到Android上,但socket.io无法连接,我将问题缩小到了一个简单的hello world,只使用了socket.io插件的模板。它适用于IOS,但不适用于Android。我会犯无声的错误 运行这段代码: export class AppComponent { socket; constructor()
export class AppComponent
{
socket;
constructor()
{
console.log('constructor!');
this.socket = SocketIO.connect('https://eaglecar.org');
this.socket.on('connect', ()=>
{
console.log('Connect!');
});
this.socket.on('error', (error) =>
{
console.log('Error!');
console.log(error);
});
}
}
有关信息,这将使用let's encrypt ssl证书连接到服务器
IOS控制台输出
但是使用安卓系统
如果没有连接,它会自动失败!也不是错误
起初我考虑的是一个计时错误,所以我尝试将connect连接到一个UI回调,调用该函数,但没有错误
无法找到任何与adb logcat相关的内容,但这似乎很正常:
08-04 15:10:24.377 11162 11162 V JS : constructor!
08-04 15:10:24.386 11162 11193 D NetworkSecurityConfig: No Network Security Config specified, using platform default
08-04 15:10:24.389 11162 11195 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
08-04 15:10:24.389 11162 11195 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
只是尝试将连接域更改为不存在的内容,但控制台中仍然没有错误
其他测试:
我做了两次测试:
我成功地通过https在同一个应用程序的同一个服务器上加载了一个图像
具有相同证书的服务器
我已成功连接到上的非安全socket.io服务器
Android上的另一个端口3000。
服务器端
我有点怀疑,这似乎是真的,只是用某个知名供应商的付费证书替换了证书,现在一切都很顺利。。显然,IOS能识别let's encrypt,但android不能。至少socket io插件没有。因为使用let's encrypt在https上可以很好地加载图像
JS: constructor!
JS: Angular is running in the development mode. Call enableProdMode() to enable the production mode.
08-04 15:10:24.377 11162 11162 V JS : constructor!
08-04 15:10:24.386 11162 11193 D NetworkSecurityConfig: No Network Security Config specified, using platform default
08-04 15:10:24.389 11162 11195 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
08-04 15:10:24.389 11162 11195 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
var fs = require('fs');
var options = {
key: fs.readFileSync('../ssl/keys/[this_is_a_valid_key].key'),
cert: fs.readFileSync('../ssl/certs/[this_is_a_valid_cert].crt')
};
var server = require('https').createServer(options);
server.listen(443,'eaglecar.org');
var io = require('socket.io').listen(server);
io.on('connection', function(socket){
console.log('connected!!');
});