我正在使用Phonegap开发一个应用程序,我正在使用websocket和AutobahnJS作为客户端应用程序。
远程websocket服务器是使用PHP和Ratchet开发的,并通过SSL运行, 所以我使用wss://进行连接。
应用程序在模拟器(Android 4.4.2)中运行良好,但没有办法使用运行Android 4.0.4的真实设备连接到websocket服务器。 onOpen回调会触发,只会调用onClose。
this.conn = new ab.Session(
this.wsUri,
function() { that.onOpen() },
function() { that.onClose() },
{ // Additional parameters, we're ignoring the WAMP sub-protocol for older browsers
'skipSubprotocolCheck': true
}
);
要使应用程序在模拟器中运行,我需要安装websocket plugin。
所以问题是:
有没有机会在运行Android 4.0.4的设备上运行Autobahn和Websocket?
提前致谢!
答案 0 :(得分:2)
从Android 4.4开始,WebView基于Chromium(版本30),并包含对WebSocket的本机支持。
较旧版本的Android具有基于旧版WebKit的WebView,并且(据我所知)缺乏对原生WebSocket的支持:http://jimbergman.net/webkit-version-in-android-version/
这意味着:您需要使用PhoneSap的WebSocket插件将WebSocket添加到WebView或等待AutobahnJS完成基于HTTP longpoll的回退(正在开发中) - 并使用支持WAMP-over-longpoll的WAMP v2服务器。