Phonegap,Websocket和Autobahn:不适用于Android 4.0.4

时间:2014-05-08 01:54:24

标签: android cordova websocket autobahn

我正在使用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?

提前致谢!

1 个答案:

答案 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服务器。