【问题标题】:Phonegap, Websocket and Autobahn: not working on Android 4.0.4Phonegap、Websocket 和 Autobahn:不适用于 Android 4.0.4
【发布时间】:2014-05-08 01:54:23
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: android cordova websocket autobahn


    【解决方案1】:

    从 Android 4.4 开始,WebView 基于 Chromium(版本 30),并包含对 WebSocket 的原生支持。

    旧版 Android 具有基于旧版 WebKit 的 WebView,并且(据我所知)缺乏对原生 WebSocket 的支持:http://jimbergman.net/webkit-version-in-android-version/

    这意味着:您要么需要使用 Phonegap 的 WebSocket 插件将 WebSocket 添加到 WebView,要么等待 AutobahnJS 完成基于 HTTP longpoll 的回退(正在开发中) - 并使用支持 WAMP-over-longpoll 的 WAMP v2 服务器。

    【讨论】:

    • 也许是一个愚蠢的问题,但如果它使用带有本机支持的 ​​Chromium,为什么我需要适用于 Android 4.4.2 的插件? (没有它不工作)如果我安装了这个插件,为什么它不能在 Android 4.0.4 上工作?
    • 不,Android 4.4 不需要任何插件 - 没有它肯定可以工作。我已经在 Nexus 5 上使用 AutobahnJS 测试了一个 Phonegap 包装的 HTML5 应用程序。它可以正常工作。
    • 我刚刚完成了双重检查,在模拟器设备上:Galaxy Nexus,目标:安装了知识代码插件的 Android 4.4.2 API 19 可以工作,但 没有插件它不能.使用android 4.0.4,模拟器或真实设备,插件与否,它都不起作用。我安装了最新的 Android skd 工具(22.6.3)和平台工具(19.0.1)。你在 Nexus 模拟器上测试过吗?你能显示一些代码吗?谢谢
    • 我不在模拟器中测试(太慢了).. 只有真正的 Nexus 5 设备。使用最新的 AutobahnJS (autobahn.s3.amazonaws.com/autobahnjs/latest/autobahn.min.js) - 您似乎使用的是旧的 WAMP v1 AutobahnJS。对于这个项目,我没有发布源代码。但是,该应用程序是 demo.crossbar.io/clandeck - 打开它,并在第二个浏览器中,例如wamp.ws。此应用通过 Phonegap 打包,无需任何插件。
    • 你知道了,我正在使用旧版本的高速公路,但我不知道......但是我仍然有问题,因为 Ratchet 只支持 WAMPv1,所以使用高速公路的更新版本就没有任何效果在浏览器或 Phonegap 中 :) 我想如果我想玩一下我设置的 websocket 服务器,我必须使用旧版本的 AutobahnJS 并被告知它仅适用于 Android >= 4.4.2目前..无论如何我非常感谢您的回答,他们帮助我理解了,非常感谢!
    猜你喜欢
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多