【问题标题】:Android phonegap and SockJSAndroid phonegap 和 SockJS
【发布时间】:2012-11-23 20:22:06
【问题描述】:

有没有办法让 Android 与 SockJs 一起在 Phonegap 中打包的应用程序中进行套接字连接?目前,我有以下代码在 iOS 上工作但在 Android 中失败,因为 Android 中的套接字连接的 file:/// 限制。

var sock = MyEnt.connect('servicename', 'http://socket.api.somewhere.be/api', {debug: true});
var entity_plays = sock.subscribe('plays');
entity_plays.on("play", function(data, msg) {
       //Do something with data
       console.log(data,msg)
}, {backlog: 10});

我已经更改了客户端隐私的服务名称,但由于上述代码适用于 iOS PG 版本(以及桌面浏览器),这无关紧要。 MyEnt 对象是一个包含 SockJS 类中的自定义函数的小包装器,但在 iOS 上同样可以完美运行

有什么想法吗?

【问题讨论】:

    标签: android sockets cordova websocket sockjs


    【解决方案1】:

    SockJS 应该可以在 phonegap 中正常工作。通过本机 Web 套接字或 xhr-streaming。在documentation 中查找file://

    【讨论】:

    • 我看过它说“有时您可能希望从“file://”地址提供您的 html - 用于开发或如果您使用的是 PhoneGap 或类似技术。但由于从“file://”提供的跨域策略文件没有来源,这意味着某些 SockJS 传输将无法工作。”所以我不确定如何修改代码以使其正常工作。你能帮我进一步吗?
    • 那条评论是关于 xhr-polling 当你的服务器需要 cookie 时,AFAIR。通常,sockjs 应该使用本机 websockets 并且应该可以正常工作。您需要做的就是为 phonegap 提供一个允许域的良好白名单,仅此而已。
    • 这很奇怪。我的访问来源设置为所有内容 () 我知道这是一个安全问题,但出于测试原因,我认为这是最实用的。会不会有其他原因导致它失败?
    • 没关系,点 (.) 是问题所在!非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2011-12-04
    • 2014-03-19
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多